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


Answers:


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" />

2
请注意,该meta必须确实是标题之后的第一个。IE9适用于IE = 100。我认为IE10可以与IE = 100一起使用。但是我还没有测试;(
RadimKöhler2012年

20
加!进行设置content="IE=edge"以确保始终使用最新版本的IE!
奥利·霍奇森

4
IE=edgeMicrosoft确保您始终以最新版本为目标的方式,所以我会这样做。
Olly Hodgson

1
@JustinJohn我已经改变了答案,用正确的设置
拉迪姆·克勒

1
谢谢@RadimKöhler。我相信从IE11开始,所有这些都已被弃用(我认为它仍然可以使用,但<!DOCTYPE html>将默认使用标准模式)。参见msdn.microsoft.com/en-us/library/ie/…–
Olly Hodgson

36

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

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

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


我需要强制使用IE9或更高版本作为标准,但我的网页不支持,IE < 9因为它使用的是HTML5。
贾斯汀·约翰

@JustinJohn是否按照我所说的那样在IE中检查了“兼容性视图”设置?是Intranet网站吗?如果页面在线,您可以发布URL吗?
Tanzeel Kazi 2012

7
ang,对我来说,这是第三位。谢谢Tanzeel,不知道那里有设置!
LowTide 2014年

1
第3个问题解决了导致我进入此页面的问题!我遇到了所有内部Web应用程序的各种渲染问题。
bspkrs 2015年

1
也可以使用网络上的组策略进行设置-请参见此处的HTML1203。在这种情况下,您显然无能为力。
Gordon

7

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

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

1
对我来说,把它放在这里总是更加可靠,meta标签非常挑剔,仅将其放在顶部(或标题之后)并不总是有效。
4imble

3

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

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

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


2

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

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

1

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


1

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

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

标签放入“布局(模板)”页面。我只花了两个小时进行调试和调整,却意识到我只是将该meta标记添加到了子页面中。将其添加到布局页面后,浏览器便以EDGE模式完美加载。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.