2017-07-19 41 views
1

我通常不这样做,并且自己不支持这种方法。但是,我目前的使用案例涉及MS Sharepoint的工作,我需要发现用户是否在任何版本的MSIE中。测试当前的浏览器是否为任何版本的Internet Explorer

似乎有一些本地Sharepoint功能只适用于MSIE,但我无法找到它的工作原理 - 当然浏览器嗅探也不是一个好方法。我碰到这个片段来了(参考在底部创作),它看起来像一个确定的测试使用方法:在这个测试的长期有效性

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

有人愿出价评论。我也想过测试CSS3选择器前缀'-ms-'是否受支持,但这当然只适用于更现代的IE版本。

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

参考来源 proposed solution作者。

+1

刚刚遇到[this](https://msdn.microsoft.com/library/dn423948(v = vs.85).aspx)。看来你的测试在IE11中不起作用。 –

+0

尝试调用scriptEngine函数,它仅在IE中提供。 – Teemu

回答

0

我建议看看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返回一个数字,如果不是真的假的。 isIE计算结果为truefalse

0

如果你决定去与涉及用户代理字符串的解决方案,这是一个安全的赌注,从8每一个IE版本通过11将包括三叉戟令牌:

/Trident/.test(navigator.userAgent) 

这是我使用的方法,如果我无法弄清楚什么功能实际需要测试。

相关问题