使用LigerUI框架的f_addTab方法新开一个Tab的注意事项
今天遇到一个场景,需要手动新开一个tab页,我们知道,原始的新开页面,其连接是在左侧,如下图所示,点击左侧的连接会在右侧新开一个tab
[caption id="attachment_1681" align="alignnone" width="563"] LigerUI新开一个tab页面[/caption]
但是我现在要点击右侧页面的工作日志按钮,或fname按钮,需要新开一个tab
经过两位大神的努力,也没有把我这个小白教会
不过后来我发现,其实是已经把我教会了,似乎是这个框架的源码有问题
如上图所示,我的主页是框架默认的一个页面
该页面已经写好了所需要的js代码
我现在添加的按钮和连接代码如下
<input type="button" onClick="f_addTabItem('demos/case/week.htm','fsdf')" value="fname" /> <a class="l-link" href="javascript:f_addTabItem('demos/case/week.htm','fsdf')">工作日志</a>部分js代码如下
<script src="lib/jquery/jquery-1.9.0.min.js" type="text/javascript"></script> <script type="text/javascript"> jQuery(f_init); function f_addTabItem(url, text) { var tabid = "ligerui" + new Date().toDateString(); parent.f_addTab(tabid, text, url); }很遗憾,这段代码测试是通不过
首先我们得到错误提示是
Uncaught SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.f_addTabItem @ welcome.htm:12(anonymous function) @ VM449:1百度了下,大概意思就是说获取父窗口失败吧,但是在服务器上则可以。
于是,我立马启动tomcat在服务器上测试
这次又遇到了新的错误,错误代码如下
Uncaught Error: Syntax error, unrecognized expression: li[tabid=ligerui1Wed Dec 14 2016] aSizzle.error @ jquery-1.9.0.js:4421tokenize @ jquery-1.9.0.js:5076Sizzle @ jquery-1.9.0.js:3964jQuery.fn.extend.find @ jquery-1.9.0.js:5576jQuery.fn.jQuery.init @ jquery-1.9.0.js:196jQuery @ jquery-1.9.0.js:62$.ligerui.controls.Tab.ligerExtend.isTabItemExist @ ligerTab.js:690$.ligerui.controls.Tab.ligerExtend.addTabItem @ ligerTab.js:702f_addTab @ index.html:131f_addTabItem @ welcome.html:12(anonymous function) @ VM27587:1从上面的代码中我发现了
li[tabid=ligerui1Wed Dec 14 2016]
于是我打印了上面js代码中的tabid,既代码编码如下
<title></title> <script src="../liger/lib/jquery/jquery-1.9.0.js" type="text/javascript"></script> <script type="text/javascript"> jQuery(f_init); function f_addTabItem(url, text) { var tabid = "ligerui1" + new Date().toDateString(); alert(tabid); parent.f_addTab(tabid, text, url); }我发现这个值就是
ligerui1Wed Dec 14 2016
最后经过我的测试,我发现,原来这个tabid是不能有空格的,随机输入一个不带空格的tabid字符串,测试成功
最后测试,在LigerUI中的子页面新开一个tab成功,整个代码运行成功。
如果这是个bug,希望官方能够即使处理哦,我等小白实在伤不起啊!
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情