帝国CMS的tab框不能在Opera等正常运行的修正
cms吧
全部回复
仅看楼主
level 1
北冥行者 楼主
     本次修正主要是针对帝国CMS中skin/default/js/tabs.js 源文件的修正,在其默认的tabs.js中仅仅考虑了IE的情况,而没有考虑到其他浏览器的兼容性,从而造成首页的tab框不能在Opera等浏览器正常运行,这是因为在IE上空白节点不算DOM节点,而在Opera、火狐等浏览器上却算,下面js代码就是针对此问题的修正,修正的代码如下:
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
2010年08月22日 18点08分 1
level 1
支持楼主[Yeah]
2010年09月28日 06点09分 2
1