【发布时间】:2014-12-03 09:47:32
【问题描述】:
我维护一个旧版 Web 应用程序,其中包含许多旧的怪癖模式页面和许多较新的标准模式页面。
在 IE10 中,如果我们的域名在 IE 兼容性列表中,我会收到来自 IE 的混合消息。
- 开发工具报告页面处于浏览器模式 IE10 兼容视图。
- 页面的外观表明它处于标准模式。
- userAgent 说它是 MSIE 10.0、Trident/6.0(建议不兼容视图)
如果我将开发工具中的浏览器模式从 IE10 Compat View 更改为 IE10,然后返回 Compat View,我会得到:
- 开发工具报告页面在 IE10 兼容视图中(和以前一样)
- 页面的外观表明它处于兼容视图中。
- userAgent 说它是 MSIE 7.0、Trident/6.0(建议它在 Compat View 中)
IE10 开发工具是否有时会歪曲浏览器模式?例如根据兼容性列表或其他标准猜测模式,当页面实际上进入标准模式时,因为 doctype 和 X-UA-Compatible 设置为 IE=edge?
或者是 documentMode 和 userAgent 不可靠来测试我们处于什么模式?
基本上,如果我们检测到用户处于该模式,我们想告诉用户“嘿,您不再需要将我们的网站放在您的兼容性视图列表中”。
【问题讨论】:
-
谢谢尼科。是的,我并没有试图测试旧浏览器中的行为(我们按照你的建议在 vm 中这样做)。我试图在运行时确定他们是否为浏览器使用了非最佳文档模式,以便我们建议他们不要这样做。并且我试图判断开发工具是否误导了我如何检测这种情况。
标签: javascript cross-browser internet-explorer-10 ie8-compatibility-mode