利用条件注释检测IE浏览器版本的JavaScript实现

作者:像素猫

时间:2026-10-28

浏览:660

jQuery 2.0已移除浏览器版本判断,推荐特性检测。本文介绍一种利用IE条件注释生成DOM元素来反向推导IE版本的JavaScript原生代码。该方法通过动态生成带有版本号的条件注释,检测特定元素是否存在来确定版本号,具有简洁、向后兼容的特点,适用于需要精确识别IE版本号的场景。

文章目录

IE浏览器版本检测的背景与挑战

jQuery 2.0版本已经移除了对浏览器版本号的直接判断,官方建议采用特性检测的方式。这里分享一种由国外开发者编写的原生JavaScript判断方法,这段代码设计非常巧妙,既简洁又具备良好的向后兼容性。通常的做法是解析USER_AGENT字符串,但由于历史原因,USER_AGENT的准确性一直存在问题,且各大厂商对其格式进行了大量修改,导致解析结果混乱。

例如IE10的USER_AGENT字符串为:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)

而IE11的USER_AGENT字符串则变为:Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko

这些字符串格式繁杂且缺乏规律,很难预测未来版本(如IE12)会如何变化。因此,仅依靠特性检测或USER_AGENT检测既不可靠,也不具备向后兼容性。

基于条件注释的检测方案

强烈推荐使用以下代码方案。

// 复制代码

核心代码实现与原理

具体代码如下:

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;
        } ());
alert(_IE);

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章