利用条件注释检测IE浏览器版本的JavaScript实现
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);vtk.js 渲染窗口黑屏或无内容显示的常见原因及排查
2026-11-05 17:30:30
js-cookie 安装与基础用法:set、get、remove 详解
2026-11-05 16:35:06
适合JavaScript初学者的实战项目:制作简易待办事项列表
2026-11-05 16:17:07
JS打开新标签页时怎么通过URL传递参数
2026-11-05 12:21:08
sigma.js 自定义节点样式:设置颜色、大小及标签显示的技巧
2026-11-05 09:55:00
