为什么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文档可能有多种原因:
- 服务器在文档的HTTP响应中发送IE7的
X-UA-Compatible
标头。 使用像Fiddler这样的工具检查服务器响应头。 - HTML文档使用IE7的
X-UA-Compatible
属性值设置元标记。 - IE浏览器会自动检测该页面是否在“兼容性视图”中打开。 请注意,默认情况下,所有Intranet站点都在IE的“兼容性视图”中查看。 在IE中的
Tools -> Compatibility view settings
下,取消勾选checkbox“在兼容性视图中显示内部网站”。 “在兼容性视图中显示所有网站”也应该取消选中。 - 您使用了开发人员工具,并明确设置为查看要在“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模式。