完美且精准的 IE10- 版本检测。

通过动态的写入条件注释的方式,来判断当前的ie浏览器的版本,优点是,对比userAgent字符匹配,要精准很多,应该说是100%正确,缺点就是要通过JS写入条件注释,拖慢页面的加载速度。

如果对于只判断ie中的ie6,强烈建议使用以下方式:

1 !-[1,] && !window.XMLHttpRequest;

首先看一下IE下的条件注释的格式:

<!--[if IE n]> <![endif]-->

* 需要注意的是--与[ 之间没有空格。

* IE10+不在支持条件注释。

接着我们要知道一个小的知识点,那就是IE10 - 都支持document.all属性。

好了,下面贴具体的代码:

 1     var _IE = (function(){
 2         var version = null;
 3         if(document.all){
 4             var div = document.createElement('div'),
 5                 all = div.getElementsByTagName('i'),
 6                 version = 5;
 7             while(div.innerHTML = '<!--[if gt IE '+ (++version) +']><i></i><![endif]-->',all[0]); 
 8             //while循环的第一个参数:循环的第一个参数是一个执行的语句,只要当前IE的版本号大于依次循环生成的版本号,那么就往div里面加一个i标签。
 9             //while循环的第二个参数是控制循环的条件。
10             (-[1,]) && (version==6)?version=10:''; // 用于解决在IE10 时不支持条件注释的问题。
11         }
12         return version;
13     })();

 

调用方式:

alert(ieVersion());

------------------------ 睡觉去~~~~~~~~~

posted @ 2016-03-07 00:37  卷柏的花期  阅读(345)  评论(0编辑  收藏  举报