IT技术博客大学习 共学习 共进步

用 javascript 判断 IE 版本号

七月、前端攻城师王子墨 2013-07-28 15:28:59 浏览 4,703 次

今天一个项目中需要判断IE版本号,又因为 jQuery 2.0 去除了对浏览器版本号的判断(它推荐特性检测),于是就看到一老外写的一段代码:

var _IE = (function(){
    var v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i');
    while (
        div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
        all[0]
    );
    return v > 4 ? v : false ;
}());

这段代码着实巧妙!既简介、有向后兼容!一般做法都是:正则搜索 USER_AGENT ;
但因为历史原因, USER_AGENT 一直都不准确,而且被各大厂商改的乱七八糟。

比如:

IE10 : Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)

IE11 : Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko

这都是些什么乱七八糟的什么字符串啊。。。鬼知道 IE12会变成什么!!!
所以使用特性检测、或者USER-AGENT检测既不可靠,也不向后兼容!

强烈推荐上述代码!

——————————————————————-

以前刚学会编程的时候,感觉自己知道的挺多,有很多东西可以写;
可真正深入学习很多知识之后,却痛苦的发现自己知道的实在是太少了!

想写点什么,却很难下笔。

建议继续学习

  1. 程序员眼里IE浏览器是什么样的 (阅读 7,864)
  2. IE BUG相关文章集合 (阅读 4,803)
  3. 一个IE6下重复加载的BUG (阅读 3,885)
  4. CSS实现HTML元素透明的那些事 (阅读 3,824)
  5. IE8开发人员工具如何嵌入浏览器 (阅读 3,522)
  6. IE下json格式的一小点需要注意的地方 (阅读 3,342)
  7. IE之短 (阅读 3,124)
  8. 从IE 9的广告说起 (阅读 3,041)
  9. IE 6与W3C盒子模型 (阅读 3,021)
  10. 用JavaScript判断IE版本号 (阅读 2,961)