帝国CMS的tab框不能在Opera等正常运行的修正
2010-07-29 12:35
267 查看
本次修正主要是针对帝国CMS中skin/default/js/tabs.js 源文件的修正,在其默认的tabs.js中仅仅考虑了IE的情况,而没有考虑到其他浏览器的兼容性,从而造成首页的tab框不能在Opera等浏览器正常运行,这是因为在IE上空白节点不算DOM节点,而在Opera、火狐等浏览器上却算,下面js代码就是针对此问题的修正,修正的代码如下:
tab.js 代码
【本文来源】:栖息地( http://www.skyln.net ),转载请以链接形式注明出处
【原文链接】:http://www.skyln.net/tech/jbjq/634.html
tab.js 代码
/*蓝天互联修改版: www.skyln.net , 解决此文件在Opera、火狐等浏览器空节点取属性值的错误*/ function $xudtitle(str){ document.title = str; } //在IE上空白节点不算,在Opera、火狐等浏览器上算.等于在IE上数量为4,在Opera、火狐等就为9 function $xu(id){ return document.getElementById(id); } //是否元素节点 function $xuisele(id){ var node = $xu(id); if(node && node.nodeType ==1) return true; return false ; } //取元素中第一个子元素节点 function $xufelenode(id){ var node = $xu(id); while(node && node.nodeType !=1) node = node.nextSibling(); return node ; } function $xushow(id){ $xu(id).style.display = "" ; } function $xublock(id){ $xu(id).style.display = "block" ; } function $xuhide(id){ $xu(id).style.display = "none" ; } function tabit(btn){ var idname = new String(btn.id); var s = idname.indexOf("_"); var e = idname.lastIndexOf("_")+1; var tabName = idname.substr(0, s); var id = parseInt(idname.substr(e, 1)); var tabNumber = btn.parentNode.childNodes.length; for(i=0;i<tabNumber;i++){ if ($xuisele(tabName+"_btn_"+i)) { $xu(tabName+"_btn_"+i).className = ""; } }; btn.className = "curr"; }; function etabit(btn){ var idname = new String(btn.id); var s = idname.indexOf("_"); var e = idname.lastIndexOf("_")+1; var tabName = idname.substr(0, s); var id = parseInt(idname.substr(e, 1)); var tabNumber = btn.parentNode.childNodes.length; for(i=0;i<tabNumber;i++){ if ($xuisele(tabName+"_div_"+i)) { $xuhide(tabName+"_div_"+i); $xu(tabName+"_btn_"+i).className = ""; } }; document.getElementById(tabName+"_div_"+id).style.display = "block"; btn.className = "curr"; };
【本文来源】:栖息地( http://www.skyln.net ),转载请以链接形式注明出处
【原文链接】:http://www.skyln.net/tech/jbjq/634.html
相关文章推荐
- [置顶] 帝国CMS缺省例子首页面的tab框不能在Firefox上正常运行的修正
- 命令行能运行,但是在crontab不能正常运行的问题
- 记一个诡异的.net framework问题造成的系统问题(visual studio不能build或不能正常运行代码,所有基于.net framework的代码无法运行)
- 在域控制器中使用默认ASPNET 帐户时ASP.NET 不能正常运行
- win7 任务计划运行批处理,不能正常运行,需用绝对路径
- osx 升级到 yosemite goagent不能正常运行处理
- ASP.NET 在域控制器上使用默认 ASPNET 帐户不能正常运行
- 解决升级U910_64后不能看SOPCAST等无法正常运行某些32位程序的方法
- ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创
- Debug 运行正常,Release版本不能正常运行
- myeclipse中直接复制的项目或项目改名后不能正常运行的解决方法
- 把eclipse里面的service服务全部删除,发现tomcat可以正常启动,但是不能运行tomcat
- 搭建heartbeat运行后发现nginx及VIP不能正常启动
- Dr.com win10/win8 开机不能运行/状态栏有图标但是弹不出来登录界面/正常使用时间连接不上网络 解决方法
- Maven —— 在MyEclipse中不能正常运行
- 为何一个MFC程序会有时能正常运行,有时却不能正常运行呢? (内容是来自我的一个帖子)
- PHP 服务器使用正则表达式不能正常运行!
- react-hot-loader不能正常运行
- release中exe正常运行,安装文件解压后exe不能打开
- SSH框架:同一个工程之前可以正常运行,现在不能