67

当我在 IE9 中使用 DOCTYPE 打开网页时

<!DOCTYPE html>

它以 IE7 标准打开文档模式。

打开页面时我需要默认的 IE9 标准。

如何更正此文档模式问题?

IE浏览器开发者工具的截图

在此处输入图像描述

4

7 回答 7

99

试试这个答案:https ://stackoverflow.com/a/13524518/1679310 。

总结一下,在meta标签中给IE浏览器更多的信息:

<!DOCTYPE html>
<html>
  <head>
    <title>My Web</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />

编辑说明:正如 Olly Hodgson 所提到的,正确的选项是 IE=edge,如上面的片段中当前所述。以下是原始版本,也是工作版本:

   <meta http-equiv="X-UA-Compatible" content="IE=100" />
于 2012-12-19T10:09:52.993 回答
36

它可能在 IE7 标准下解析文档的原因可能有多种:

  1. 服务器正在文档的 HTTP 响应中发送X-UA-CompatibleIE7 的标头。使用Fiddler之类的工具检查服务器响应标头。
  2. X-UA-CompatibleHTML 文档正在使用IE7 的属性值设置元标记。
  3. IE 会自动检测该页面以在“兼容性视图”中打开。请注意,默认情况下,所有 Intranet 站点都在 IE 的“兼容性视图”中查看。Tools -> Compatibility view settings取消选中IE下的“在兼容性视图中显示 Intranet 站点”复选框。“在兼容性视图中显示所有网站”也应该取消选中。
  4. 您使用了开发人员工具并明确设置为以“IE7 标准”模式查看要呈现的页面。请注意,这只会发生在每个客户的基础上。

更新 2016-01-28
正如@Gordon 在下面的评论中指出的那样,另一个原因可能是网络管理员已将站点的兼容性视图设置为网络上的组策略。
在这种情况下,唯一的解决方法是联系网络管理员从组策略中删除该站点。请参阅此处的 HTML1203

于 2012-12-19T10:12:32.343 回答
7

您也可以在 web.config 中进行设置。

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <clear />
            <add name="X-UA-Compatible" value="IE=edge" />
        </customHeaders>
    </httpProtocol>
于 2014-07-09T20:16:39.163 回答
3

您的页面是否包含强制使用 IE7 的元标记?

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

这将强制页面使用 IE7 兼容性。

于 2012-12-19T10:09:14.263 回答
2

只是想分享一下,如果您的 Web 服务器是 Apache2,您可以在 VirtualHost 配置中设置如下所示的响应标头,这也将解决问题。

Header set X-UA-Compatible "IE=edge"
于 2014-10-15T16:34:41.957 回答
1

该问题似乎特定于 IE9 和兼容模式的组合。对我们来说,我们不能禁用兼容模式,因为它是一个 SharePoint 2013 站点,并且 IE11 必须在兼容模式下运行才能编辑页面,但 IE9 的行为与您显示的一样。在元标记中将 X-UA-Compatible 设置为“IE=edge”确实解决了我们的问题,尽管将值设置为 IE=10 并不会影响我们的行为。我们也有相同的文档类型。

于 2014-08-27T17:59:57.940 回答
1

如果您的项目是 ASP.NET MVC,请确保添加:

<meta http-equiv="X-UA-Compatible" content="IE=edge">

标记到您的布局(模板)页面。我只花了两个小时调试和调整,才意识到我只是将那个元标记添加到我的子页面中。一旦我将它添加到我的布局页面,浏览器就完美地以 EDGE 模式加载。

于 2015-06-23T17:52:22.660 回答