Internet Explorer 11企业模式检测

3
最近,我们的团队遇到了一个奇怪的情况。去年底,我们从IE 8迁移到了IE 11。我们的应用程序现在设计为在IE 11企业模式下工作。
如果用户使用IE 8,我们需要显示一个JavaScript警告消息以升级浏览器。对于使用IE 8的用户,警告消息成功显示。但是当警告消息也显示给使用IE11企业模式的用户时,问题就出现了。我知道IE11企业模式基本上模拟IE 8的行为,这就是我们的浏览器检测功能失败的原因。
因此,我想检查是否有人已经实现了这种功能,即使他们正在使用IE 11企业模式,他们也可以成功检测IE版本。
所有的回复都很有价值。感谢您的回复!

2
你是如何检测浏览器的? - James Parsons
请发布您目前拥有的代码。这将为您带来更好的结果。 - Vaishak Suresh
function getIEVersion() { var rv = -1; // 返回值默认为失败。if (navigator.appName == 'Microsoft Internet Explorer') { var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); if (re.exec(ua) != null) rv = parseFloat( RegExp.$1 ); } return rv;}if(getIEVersion() > -1 && getIEVersion() <=8){ alert('需要更新浏览器。请更新到IE 11'); } - Shailesh Karkera
3个回答

1
根据MSDN的说法:
自Internet Explorer 11起,用户代理字符串已经发生了重大变化...依赖用户代理字符串的网站应该更新到现代技术,例如特性检测、自适应布局和其他现代实践。

https://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx

尽管在 EM 中使用 IE11,但会出现

错误。
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; Tablet PC 2.0)

不建议仅在userAgent中查找“MSIE”,而应尝试:

var isIE11 = !!navigator.userAgent.match(/Trident.*rv[ :]*11\./)

0

我正在研究这个问题。最近我偶然发现了this,但是无法可靠地使其工作,不过寻找IE中本不应该存在的功能的概念是正确的。

我的计划是使用IETruth获取版本号(它非常擅长检测IE11的版本),然后执行以下操作:

var IE = IeVersion(); if(IE.TrueVersion < 9 && ('spellcheck' in document.createElement('textarea')) { // 必须在企业模式下运行,因为拼写检查直到IE10才被引入 }

我会告诉你我的进展情况!


0

您可以使用文档模式来检查企业模式。因为在企业模式中,文档模式设置为IE 5到IE 8。此检查以及浏览器检查功能应该可以正常工作。

如何获取浏览器“文档模式”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接