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

Javascript 测试当前浏览器是否为Internet Explorer的任何版本,javascript,internet-explorer,sharepoint,Javascript,Internet Explorer,Sharepoint,我通常不会这样做,我自己也不支持这种方法。然而,我当前的用例关注的是MS Sharepoint,我需要发现用户是否在任何版本的MSIE中 似乎有一些本地Sharepoint功能只在MSIE中工作,但我无法找到它是如何工作的——当然,浏览器嗅探也不是一个好方法。我遇到了这个代码段(在底部引用了作者),它看起来是一个可以使用的测试: if(window.ActiveXObject || "ActiveXObject" in window){ // Always true if bro

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

似乎有一些本地Sharepoint功能只在MSIE中工作,但我无法找到它是如何工作的——当然,浏览器嗅探也不是一个好方法。我遇到了这个代码段(在底部引用了作者),它看起来是一个可以使用的测试:

if(window.ActiveXObject || "ActiveXObject" in window){    
    // Always true if browser is Internet Explorer
}
有人能对这项测试的长期有效性发表评论吗。我还考虑过测试CSS3选择器前缀'-ms-'是否受支持,但这当然只适用于更现代的IE版本

非常感谢您的任何意见/建议/建议

参考资料来源 作者。

我建议 他们有一个测试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;

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

/Trident/.test(navigator.userAgent)

如果我不能确定实际需要测试哪些功能,我会使用这种方法。

刚刚遇到。您的测试似乎无法在IE11中运行。请尝试调用scriptEngine函数,它仅在IEs中受支持。最好使用
if(/(MSIE)|(Trident)/.test(navigator.userAgent)
完全覆盖基本内容。