判断浏览器是否为 IE 并获取其版本号的代码如下:
// 判断是否为 IE 浏览器
function isIE() {
return !!window.ActiveXObject || "ActiveXObject" in window;
}
// 获取 IE 浏览器版本号
function getIEVersion() {
const ua = window.navigator.userAgent;
const msie = ua.indexOf("MSIE ");
if (msie > 0) {
// IE 10 或更早版本
return parseInt(ua.substring(msie + 5, ua.indexOf(".", msie)), 10);
}
const trident = ua.indexOf("Trident/");
if (trident > 0) {
// IE 11+
const rv = ua.indexOf("rv:");
return parseInt(ua.substring(rv + 3, ua.indexOf(".", rv)), 10);
}
return -1; // 非 IE 浏览器
}
if (!isIE()) {
console.log("不是 IE 浏览器");
} else {
const version = getIEVersion();
console.log("IE 浏览器版本号:" + version);
}
-
这里使用了两个函数:isIE 和 getIEVersion。isIE 函数判断浏览器是否为 IE,它检查全局对象中是否存在 ActiveXObject 属性。如果存在,说明是 IE 浏览器;否则,说明是非 IE 浏览器。
-
getIEVersion 函数用于获取 IE 浏览器的版本号。它首先检查用户代理字符串中是否包含 "MSIE ",如果包含,说明是 IE 10 或更早版本。如果不是这种情况,它继续检查是否包含 “Trident/”,如果包含,说明是 IE 11+ 版本。最后,如果都不是,说明是非 IE 浏览器,返回 -1。
注意,由于 IE 浏览器的用户代理字符串可以被修改,因此这种方法并不完全可靠。建议仅在必要时使用,尽可能使用现代 Web API 来检测浏览器特性。