如何从服务器端强制设置IE的兼容模式?
在域控制的环境中,我发现即使在我们提供X-UA标签,!DOCTYPE定义和“ IE = Edge”响应的情况下,某些客户端(winXP / Win7,IE8 / IE9)也会触发兼容模式标头。这些客户端已选中“在兼容性视图中显示Intranet站点”复选框。这正是我要覆盖的内容。 以下是我用来尝试了解IE如何决定实际触发兼容模式的文档。 http://msdn.microsoft.com/zh-cn/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标记来绝对声明他们希望其网站如何显示以及如何将Standards模式页面映射到IE7 Standard。使用X-UA-Compatible标签会覆盖客户端上的“兼容性视图”。 Google表示“定义文档兼容性”,但不幸的是,SPAM引擎不允许我发布两个以上的网址。 这是一个ASP .NETWeb应用程序,在母版页上包含以下定义: <!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站点”浏览器设置。但是根据客户端的不同,我发现其中一些仍会触发兼容模式。这似乎还取决于计算机级别,而不是策略组设置,因为即使在不同客户端上使用同一组凭据时,我也会获得不同的结果。 禁用“兼容性视图设置”复选框可以解决问题。但是实际目的是确保无论客户端设置如何,应用程序的渲染方式都完全相同。 有什么想法,我可能会错过什么?是否有可能迫使IE始终呈现页面而不触发Compat模式? 太感谢了, 久美 …