通过动态的写入条件注释的方式,来判断当前的ie浏览器的版本,优点是,对比userAgent字符匹配,要精准很多,应该说是100%正确,缺点就是要通过JS写入条件注释,拖慢页面的加载速度。
如果对于只判断ie中的ie6,强烈建议使用以下方式:
1 !-[1,] && !window.XMLHttpRequest;
首先看一下IE下的条件注释的格式:
<!--[if IE n]> <![endif]-->
* 需要注意的是--与[ 之间没有空格。
* IE10+不在支持条件注释。
接着我们要知道一个小的知识点,那就是IE10 - 都支持document.all属性。
好了,下面贴具体的代码:
1 function ieVersion(){ 2 3 if(document.all){ // IE 10 -才支持该属性,edge(ie11)、FF、CH等会自动忽略 4 5 ieflag = true; 6 var ver = 5, 7 iecc = ‘‘; 8 9 while(ieflag && ver<=9){ // 循环判断IE 9以内的版本 10 document.write(‘<!--[if IE ‘+ ver +‘]><script> window.ieflag = false<\/script><![endif]-->‘); 11 if(ieflag){ 12 ver++; 13 } 14 } 15 16 if(ver>9 && ieflag){ // IE10+ 已结放弃了条件注释了 17 return 10; 18 } 19 } 20 return ver; 21 }
调用方式:
alert(ieVersion());
------------------------ 睡觉去~~~~~~~~~
原文:http://www.cnblogs.com/HCJJ/p/5249182.html