完美且精准的 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());
------------------------ 睡觉去~~~~~~~~~