最近,我的团队陷入了一个奇怪的境地。去年年底,我们从IE 8迁移到IE 11。我们的应用程序现在被设计为在IE 11企业模式下工作。
如果用户使用的是IE 8,我们需要显示一条javascript提示消息来升级浏览器,提示消息可以成功的显示给使用IE 8的用户,但是当提示消息也显示给企业模式下使用IE11的用户时,问题就出现了。我知道IE11企业模式基本上模拟了IE 8的行为,这就是我们的浏览器检测功能失败的原因。
因此,我想检查是否有人实现了这种功能,即使他们使用的是IE11企业模式,也可以成功检测到IE版本。
所有的回复都是有价值的。感谢您的回复!
发布于 2015-04-23 15:28:28
根据MSDN:
从Internet Explorer11开始,用户代理字符串已经改变了依赖于用户代理字符串的significantly...Sites,应该更新为现代技术,例如特征检测、自适应布局和其他现代实践。
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\./)
发布于 2015-08-25 22:02:04
我自己也在调查这事。我最近确实偶然发现了this -但不能让它可靠地工作-然而,寻找IE通常不应该提供的功能的概念是合理的。
我现在的计划是使用IETruth获取版本号(它非常擅长为IE11进行版本检测),然后执行如下操作:
var IE = IeVersion(); if(IE.TrueVersion < 9 && ('spellcheck' in document.createElement('textarea')) { // must be running in Enterprise mode because spellcheck wasn't introduced until IE10 }
我会让你知道我的进展如何!
发布于 2016-02-12 07:47:29
您可以使用文档模式检查企业模式。因为在EM中,文档模式设置为IE 5到IE 8。此检查以及您的浏览器检查功能应该可以工作。
https://stackoverflow.com/questions/29784078
复制相似问题