测试当前浏览器是否为Internet Explorer的任何版本

时间:2017-07-19 16:07:47

标签: javascript internet-explorer sharepoint

我通常不会这样做,也不会自己支持这种做法。但是,我当前的用例涉及MS Sharepoint,我需要发现用户是否在任何版本的MSIE中。

似乎有一些本地Sharepoint功能只能在MSIE中运行,但我无法找到它是如何工作的 - 当然浏览器嗅探也不是一个好方法。我遇到了这个片段(底部的作者参考),看起来像是一个好的测试:

if(window.ActiveXObject || "ActiveXObject" in window){    
    // Always true if browser is Internet Explorer
}

任何人都可以对此测试的长期有效性发表评论。我还考虑过测试CSS3选择器前缀' -ms - '支持,但这当然只适用于更现代的IE版本。

非常感谢任何意见/建议/建议。

参考资料来源 proposed solution作者。

2 个答案:

答案 0 :(得分:2)

我建议查看http://browserhacks.com/ 他们列出了几种测试IE11及以下的方法。

我个人使用的是,

// IE <= 10
var ieVersion = (function() { if (new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})").exec(navigator.userAgent) != null) { return parseFloat( RegExp.$1 ); } else { return false; } })();
// IE 11
var isIE = '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style;
如果为真,则

ieVersion返回一个数字,否则返回false。 isIE评估为truefalse

答案 1 :(得分:0)

如果您决定使用涉及用户代理字符串的解决方案,那么可以肯定的是,从8到11的每个IE版本都将包含Trident令牌:

/Trident/.test(navigator.userAgent)

如果我无法确定实际需要测试的功能,这就是我使用的方法。