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

当我用DOCTYPE打开IE9中的一个网页时

<!DOCTYPE html> 

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

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

如何纠正这个文档模式的问题?

IE浏览器开发工具的截图

在这里输入图像说明

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

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

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

IE7标准下parsing文档可能有多种原因:

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

更新2016-01-28
正如@Gordon在下面的评论中指出的,另一个原因可能是networkingpipe理员已经把兼容性视图的站点设置为networking上的组策略。
在这种情况下唯一的解决scheme是联系networkingpipe理员从组策略中删除站点。 在这里看到HTML1203 。

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

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

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

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

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

只是想分享一下,如果你的web服务器是Apache2,你可以在你的VirtualHostconfiguration中设置如下的响应头,这也将解决这个问题。

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

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

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

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

标签到您的布局(模板)页面。 我只花了两个小时的时间进行debugging和调整,只是意识到我只是把meta标签添加到我的子页面中。 只要我把它添加到我的布局页面,浏览器完全加载EDGE模式。