CSS hacks已经非常成熟,通过它你不仅可以区分浏览器类型,甚至可以区分它们的版本号,而且你几乎听不到它出错的例子。但Javascript就没那么幸运了,navigator经常会欺骗你,对象检测
很安全,但它要区分浏览器的版本号就没那么简单了。当然我Js很懒,也许有好的办法。
为此我就想为什么不用CSS来辅助JS进行浏览器检测呢?先看代码:
#selector{
background-color:#000;
background-color:#f00\0; /*IE 8*/
*background-color:#f60; /*IE 6、7*/
_background-color:#fff; /*IE 6*/
}
var nodeBg = document.getElementById("selector").style.backgroundColor;
var nodeBg = $D.getStyle($("selector"),"background-color");
if (nodeBg === "#f00"){
alert("IE8");
}else if(nodeBg === "#f60"){
alert("IE7");
}else if(nodeBg === "#fff"){
alert("IE6");
}else{
alert("not IE");
}
原理就是通过js去判断浏览器解析到的CSS属性值,通过该值判断浏览器的版本。当然我这里只写了IE的几个版本的hack,你还可以通过一些别的hack或者私有属性来区分别的浏览器,不一一列举了。
当然,正如三七说的,这显然绕了一圈,Js直接就能判断;且不利于团队协作,万一某一天别人删了这句看似“没用”的CSS规则,你的脚本就傻逼了。只能算是一种小技巧吧。
Pingback
前端开发值得一看的文章(2) | w3er #Pingback
ZHOUQICF.COM #Pingback
前端开发值得一看的文章(2) – 拿铁客 #Pingback
前端开发值得一看的文章(2) | 田园牧歌 #