在域控制的环境中,我发现即使我们提供了X-UA标记、!DOCTYPE定义和"IE=Edge"响应头,也会在某些客户端(winXP/win7、IE8/IE9)上触发兼容模式.这些客户端勾选了"在兼容视图中显示Intranet站点"复选框.这正是我想要推翻的.
以下是我用来try 理解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
网站所有者有always人控制他们的内容 网站所有者可以 Select 使用X-UA-Compatible标签,以绝对声明他们希望网站的显示方式,并将标准模式页面映射到IE7标准.Use of the X-UA-Compatible tag overrides Compatibility View on the client.
不幸的是,垃圾邮件引擎不允许我发布超过2个URL.
这是一个ASP .NET
版本的Web应用程序,在母版页上包括以下定义:
<!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判断了报头是否确实被正确注入.
我的理解是,使用这些设置,我应该能够覆盖"在兼容性视图中显示Intranet站点"浏览器设置.但根据客户端的不同,我发现其中一些仍然会触发兼容模式. 这似乎还取决于计算机级别而不是策略组设置,因为即使在不同的客户端上使用相同的凭据集时,我也会获得不同的结果.
禁用"兼容性视图设置"复选框可以解决此问题.但实际目的是确保应用程序以完全相同的方式呈现,而不管客户端设置如何.
有什么 idea 和我可能错过的吗?有没有可能强迫IE在不触发Compat模式的情况下始终呈现页面?
非常感谢,
豪梅
该网站目前正在开发中,当然不在微软的兼容性列表中,但我也判断了一下,以防万一.
不幸的是,垃圾邮件引擎不允许我发布超过2个URL.