IE 页面被强制进入 IE7 文档模式

Posted

技术标签:

【中文标题】IE 页面被强制进入 IE7 文档模式【英文标题】:IE page being forced into IE7 Document Mode 【发布时间】:2012-06-16 05:48:25 【问题描述】:

我一直在调查一个问题,并且正在努力寻找新的想法,所以我想看看是否有人可以提供帮助。

我有一个在 Chrome 和 Firefox 中显示良好的页面。它在 IE9 中也能正常显示,但我们的一些客户必须使用兼容模式……当以兼容模式查看页面时,出于某种原因,它会强制以 IE7 文档模式显示。

页面的第一行是 !DOCTYPE html,还有:

meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1

我认为应该强制页面以最新的文档模式显示。

当我在 F12 Developer Tools 中浏览 HTML 时,html 的第一行已被注释掉:

!-- DOCTYPE HTML --

谁能建议我可以尝试解决此问题的任何方法,即强制页面以 IE9 文档模式显示?当我在开发人员工具中手动将文档模式更改为 IE9 时,页面显示正常 - 所以我只需要找出 IE 强制使用 IE7 文档模式而不使用默认模式的原因。

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

您可以查看我对类似问题的回答:X-UA-Compatible is set to IE=edge, but it still doesn't stop Compatibility Mode。

如果用户在兼容性视图设置对话框中切换了某些选项,例如“在兼容性视图中显示 Intranet 站点”或“在兼容性视图中显示所有站点”,则元标记不会覆盖文档类型,这听起来可能您的一些客户就是这种情况,无论是他们的意图还是他们公司的政策。

要强制它退出兼容性视图,您必须在托管服务器上而不是在提供的文件中设置 X-UA-Compatible;对于 .NET,您通常会像下面的示例一样在 web.config (IIS7) 中设置它,或者将其添加到 Web 应用程序属性 (IIS6) 的自定义 Http 标头中。

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <clear />
      <add name="X-UA-Compatible" value="IE=EmulateIE8" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

【讨论】:

另外,您不必在上面的代码中包含 ;它删除了可以在其他地方设置的任何其他自定义标头

以上是关于IE 页面被强制进入 IE7 文档模式的主要内容,如果未能解决你的问题,请参考以下文章

IE10 以 IE7 模式呈现。如何强制标准模式?

文档模式

IE11 文档模式默认为 IE7。如何重置?

IE10在IE7模式下渲染。如何强制使用标准模式?

如何强制 Internet Explorer 以标准模式而不是 Quirks 模式呈现?

如何强制 IE10 以 IE9 文档模式呈现页面