【发布时间】:2015-06-17 07:11:40
【问题描述】:
我正在运行带有 IE 11 的 Windows 7(64 位)
拥有以下navigator.userAgent:
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2;
.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0;
.NET4.0C; .NET4.0E)"
我希望能够在我的网站上显示任何内容之前检测 IE 的版本。换句话说,我工作的公司已经更新了大多数计算机以运行 IE11 或 Chrome。但是有些电脑还是有IE9的。
我希望我的网站能够为运行 IE11 或 chrome 的用户正常工作。应该检测到任何其他版本的浏览器,并通知用户更新他的机器。
我在 SO 引用 v11 上找到的所有代码都是 userAgent 字符串的一部分,但这里不是这种情况。
编辑:我也试过了:
var isIE11 = !!(navigator.userAgent.match(/Trident/)
&& !navigator.userAgent.match(/MSIE/));
//value is false in IE6/IE9/IE11
var isIE11 = !!(navigator.userAgent.match(/Trident/)
&& navigator.userAgent.match(/rv 11/));
//value is false in IE6/IE9/IE11
var isIE11 = !(window.ActiveXObject) && "ActiveXObject" in window;
//value is false in IE6/IE9/IE11
如何检测IE11?
编辑 2:此链接 http://kangax.github.io/compat-table/es6/ 可以检查仅在 IE11 上运行的 hoisted ... 功能。所以我也试过这个:
{ function f() { return 1; } }
function g() { return 1; }
{ function g() { return 2; } }
{ function h() { return 1; } }
function h() { return 2; }
alert( f() === 1 && g() === 2 && h() === 1); // alerts false in all ie versions
【问题讨论】:
-
@Vincent1989 谢谢,但我已经去过那个答案了。我的情况是独一无二的。我拥有的 ie 是 11,但 userAgent 没有说明这一点。这就是为什么它对我不起作用
-
为什么要检测浏览器类型/版本?推荐的方法是检测功能并仅在可用时实现它们。另见stackoverflow.com/questions/21391593/…
-
@Xotic750 ie11 可以做什么(在 javascript 中)以前版本不能做的事情是什么?
-
例如IE11+支持
hoisted block-level function declaration(chrome目前不支持,firefox支持),可以测试这个功能。
标签: javascript internet-explorer internet-explorer-11