我通常不会这样做,也不会自己支持这种做法。但是,我当前的用例涉及MS Sharepoint,我需要发现用户是否在任何版本的MSIE中。
似乎有一些本地Sharepoint功能只能在MSIE中运行,但我无法找到它是如何工作的 - 当然浏览器嗅探也不是一个好方法。我遇到了这个片段(底部的作者参考),看起来像是一个好的测试:
if(window.ActiveXObject || "ActiveXObject" in window){
// Always true if browser is Internet Explorer
}
任何人都可以对此测试的长期有效性发表评论。我还考虑过测试CSS3选择器前缀' -ms - '支持,但这当然只适用于更现代的IE版本。
非常感谢任何意见/建议/建议。
参考资料来源 proposed solution作者。
答案 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
评估为true
或false
答案 1 :(得分:0)
如果您决定使用涉及用户代理字符串的解决方案,那么可以肯定的是,从8到11的每个IE版本都将包含Trident令牌:
/Trident/.test(navigator.userAgent)
如果我无法确定实际需要测试的功能,这就是我使用的方法。