IE10开发工具如何报告兼容性视图?

克雷格·塞莱斯特(Craig Celeste)

我维护的遗留Web应用程序具有很多旧的怪癖模式页面和很多新的标准模式页面。

在IE10中,如果我们的域名位于IE兼容性列表中,则我从IE中收到混合消息。

  • 开发工具报告该页面处于浏览器模式IE10兼容视图中。
  • 页面的外观表明它处于标准模式。
  • userAgent表示它是MSIE 10.0,Trident / 6.0(建议不兼容视图)

如果我将开发工具中的浏览器模式从IE10兼容视图更改为IE10,然后又返回到兼容视图,则会得到:

  • 开发工具报告该页面处于IE10兼容视图中(与以前一样)
  • 页面的外观表明它处于兼容视图。
  • userAgent表示它为MSIE 7.0,Trident / 6.0(建议在Compat View中使用)

IE10开发人员工具有时会误显示浏览器模式吗?例如,当页面实际上由于doctype和X-UA-Compatible设置为IE = edge进入标准模式时,根据兼容性列表或其他条件猜测模式。

还是documentMode和userAgent不能可靠地测试我们所处的模式?

基本上,如果我们检测到用户处于该模式,则我们要告诉用户“嘿,您不再需要将我们的网站放在兼容性视图列表中”。

安德鲁·帕顿

测试User-Agent字符串足以确定页面是否处于“兼容性视图”模式。如果UA字符串为MSIE 10.0, Trident/6.0,则可以相信该页面处于IE 10标准模式。因此,在第一种情况下,我不相信开发人员工具报告的“浏览器模式:IE10兼容视图”,就像您观察到建议标准模式的页面外观所发现的那样。

对于您的情况,如果这是请求中的UA字符串,则意味着不遵守兼容性视图设置列表。浏览器模式和UA字符串是在发出请求之前生成的,因此它们不受X-UA-Compatible标记或doctype响应的影响。无论出于何种原因,似乎IE10都不尊重您域的“兼容性视图设置”列表中的条目。这是MSDN中该过程的说明

浏览器模式/文档模式系统概述图
(来源:microsoft.com

As far as I know, you can rely on the user agent string to determine when to inform your visitors that they can remove your site from their Compatibility View Settings list (or deselect the Compatibility View button). Specifically, if the string is MSIE 7.0, Trident/6.0, the browser mode is Internet Explorer 7 and the browser, as indicated by Trident/6.0, is IE10.

There is a really good blog post from MSDN (where the graphic above comes from) about IE9 that goes in detail through browser mode vs document mode and specifies the behaviour of the browser and UA strings in those different situations. Unfortunately, I have not found a similarly detailed post about IE10, but I’m guessing/hoping that the behaviour is similar.

最后说明:当您说Web应用程序有很多旧的古怪页面时,我担心文档模式(古怪)和浏览器模式(兼容性视图)之间的混淆。我猜这不是您的问题的一部分,但是因为这种区别过去使我感到震惊,所以我只想在这里提一下。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

处于“标准文档”模式下时的IE10兼容性视图

来自分类Dev

通过RPM的RHEL6兼容性库和开发工具?

来自分类Dev

在没有兼容性视图的情况下运行时,可能导致IE10阻止iframe的原因

来自分类Dev

在没有兼容性视图的情况下运行时,可能导致IE10阻止iframe的原因

来自分类Dev

如何强制兼容性视图

来自分类Dev

如何强制兼容性视图

来自分类Dev

在Windows 8.1中,如何将IE设置为旧版本(兼容性视图)?

来自分类Dev

IE11兼容性视图中的TEXTAREA maxLength

来自分类Dev

在IE兼容性视图中无法渲染

来自分类Dev

IE兼容性视图模式下的superfish菜单错误

来自分类Dev

IE浏览器兼容性视图?

来自分类Dev

IE兼容性视图使用哪个引擎?

来自分类Dev

如何从开发人员工具清除IE10和IE11中的localStorage?

来自分类Dev

或工具路由优化节点兼容性

来自分类Dev

或工具路由优化节点兼容性

来自分类Dev

与IE7 Angularjs的兼容性

来自分类Dev

angularJS音频IE兼容性

来自分类Dev

IE8强制使用兼容性视图刷新网页

来自分类Dev

兼容性视图中IE 11中的window.event.x给出错误的结果

来自分类Dev

IE:为什么兼容性视图消失一些网站?

来自分类Dev

如何安装12.10的开发工具?

来自分类Dev

电子-如何添加React开发工具

来自分类Dev

如何安装12.10的开发工具?

来自分类Dev

Java代码在ie10开发人员工具中以单行显示

来自分类Dev

vim与Windows 10的兼容性

来自分类Dev

FinalBuilder 7与Windows 10的兼容性

来自分类Dev

Powerbuilder 10 Windows 8兼容性

来自分类Dev

Debian 10 Hyper V 兼容性

来自分类Dev

如何在保持向后兼容性的同时在MATLAB中开发和维护例程?

Related 相关文章

热门标签

归档