JavaScript判断IE各版本最完美解决方案

来源:互联网 发布:网络推广销售技巧话术 编辑:程序博客网 时间:2024/05/29 14:23

IE知道自身毛病很多,于是提供的一套官方的HTML hack方式:

<!--[if IE]>// 全部IE版本可见<![endif]--><!--[if IE 6]>// IE6可见<![endif]-->

依次等等。
这样的写法在其它浏览器里,完全就是一坨注释而直接遭到无视,但在IE里却不会。IE会分析里面的提到的版本号,并根据版本号确定要不要解析里面的DOM元素和文本内容。等一下!DOM元素?那岂不是可以使用js来获取里面的DOM元素?反正谁看到了,谁就是IE!于是,国外大神就有了下面的写法:

var isIE = function(){    var b = document.createElement('b')    b.innerHTML = '<!--[if IE]><i></i><![endif]-->'    return b.getElementsByTagName('i').length === 1}

这也太巧妙了!首先生成了一个b元素,设置它的innerHTML为一坨只有IE才认识的注释,注释里只有一个空的标签,然后读取里面的出现的元素i的个数是不是等于1,是不是等于1,是不是等于1。。。。
在大苹果看来,这样的写法比其它任何一种都要好。至于为什么生成一个b元素并且里面写一个i元素而不是div或者strong,更多是考虑到前者字节量更小。
检测各个IE版本的方法也就顺理成章了:

var isIE6 = function(){    var b = document.createElement('b')    b.innerHTML = '<!--[if IE 6]><i></i><![endif]-->'    return b.getElementsByTagName('i').length === 1}// var isIE7// ...
0 0
原创粉丝点击