在域控制的环境中,我发现在某些客户端(winXP/Win7,IE8/IE9)上,即使我们提供了 X-UA 标签,也会触发兼容性模式!DOCTYPE 定义和“ IE = Edge”响应头。这些客户机勾选了“在兼容性视图中显示 Intranet 站点”复选框。这正是我想要改写的。
下面是我用来理解 IE 如何决定实际触发兼容性模式的文档。
Http://msdn.microsoft.com/en-us/library/ff406036%28v=vs.85%29.aspx
Http://blogs.msdn.com/b/ie/archive/2009/02/16/just-the-facts-recap-of-compatibility-view.aspx
网站所有者是 一直都是在控制他们的内容。网站所有者可以选择使用 X-UA-Compatible 标签来完全声明他们希望自己的网站如何显示,并将标准模式页面映射到 IE7标准。< em > 使用 X-UA- 兼容标记覆盖客户端的兼容视图。
谷歌的 “定义文档兼容性”,遗憾的是垃圾邮件引擎不让我发布超过2个网址。
这是一个 ASP .NET
网络应用程序,主页上包括以下定义:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
</head>
和 web.config
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=Edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
我已经使用 Fiddler 检查头部确实被正确注入。
我的理解是,通过这些设置,我应该能够覆盖“在兼容性视图中显示内部网站”浏览器设置。但是根据客户端的不同,我发现其中一些仍然会触发兼容模式。 它似乎还可以归结为机器级别,而不是策略组设置,因为即使在不同客户机上使用相同的凭据集,我也会获得不同的结果。
禁用“兼容性视图设置”复选框可以解决这个问题。但实际的目的是确保应用程序呈现完全相同的方式,而不管客户端设置如何。
有什么想法和我可能错过的东西吗?有没有可能强制 IE 总是在不触发 Compat 模式的情况下呈现页面?
万分感谢,
Jaume
PS: 该网站目前正在开发中,当然不在微软的兼容列表中,但我也检查了以防万一。
谷歌的 “了解兼容视图列表”,遗憾的是垃圾邮件引擎不让我发布超过2个网址。