为什么IE9在文档模式下以IE7标准打开?

时间:2012-12-19 10:05:49

标签: html html5 internet-explorer internet-explorer-9 doctype

当我在IE9中打开一个DOCTYPE为

的网页时
<!DOCTYPE html>

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

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

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

它是如何进入IE浏览器开发者工具的屏幕截图

enter image description here

7 个答案:

答案 0 :(得分:99)

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

总结,在IE标签中给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" />

答案 1 :(得分:36)

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

  1. 服务器正在文档的HTTP响应中为IE7发送X-UA-Compatible标头。使用Fiddler等工具检查服务器响应标头。
  2. HTML文档正在设置一个元标记,其中包含IE7的X-UA-Compatible属性值。
  3. IE正在自动检测页面,以便在“兼容性视图”中打开。请注意,默认情况下,所有Intranet站点都在IE中的“兼容性视图”中查看。取消选中IE中Tools -> Compatibility view settings下的“在兼容性视图中显示Intranet网站”复选框。还应取消选中“在兼容性视图中显示所有网站”。
  4. 您使用了Developer工具并明确设置为在“IE7标准”模式下查看要呈现的页面。请注意,这只会在每个客户端的基础上发生。
  5. 更新2016-01-28
    正如@Gordon在下面的评论中指出的那样,另一个原因可能是网络管理员已将网站的兼容性视图设置为网络上的组策略。
    在这种情况下,唯一的解决方案是联系网络管理员以从组策略中删除该站点。请参阅HTML1203 here

答案 2 :(得分:7)

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

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

答案 3 :(得分:3)

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

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

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

答案 4 :(得分:2)

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

Header set X-UA-Compatible "IE=edge"

答案 5 :(得分:1)

该问题似乎特定于IE9和兼容模式的组合。对于我们来说,我们无法禁用兼容模式,因为它是SharePoint 2013网站,IE11必须以兼容模式运行才能编辑页面,但IE9的行为正如您所显示的那样。在元标记中将X-UA兼容设置为“IE = edge”确实解决了我们的问题,尽管将值设置为IE = 10并不影响我们的行为。我们也有相同的doctype。

答案 6 :(得分:1)

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

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

标记到您的布局(模板)页面。我只花了两个小时调试和调整,只是意识到我只在我的子页面中添加了这个元标记。只要我将其添加到我的布局页面,浏览器就会完全加载到EDGE模式。