Javascript 测试当前浏览器是否为Internet Explorer的任何版本
我通常不会这样做,我自己也不支持这种方法。然而,我当前的用例关注的是MS Sharepoint,我需要发现用户是否在任何版本的MSIE中 似乎有一些本地Sharepoint功能只在MSIE中工作,但我无法找到它是如何工作的——当然,浏览器嗅探也不是一个好方法。我遇到了这个代码段(在底部引用了作者),它看起来是一个可以使用的测试: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
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)
完全覆盖基本内容。