Html 与X-UA兼容的http头是否适用于IE9?

Html 与X-UA兼容的http头是否适用于IE9?,html,browser,internet-explorer-9,doctype,Html,Browser,Internet Explorer 9,Doctype,我正在开发一个可以作为内部网站托管的web产品。我正试图找到一种编程方法,以防止IE9滑入IE9兼容性视图浏览器模式,即使“在兼容性视图中显示Intranet站点”可能处于启用状态 我正在使用此html页面进行测试: <!DOCTYPE HTML> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=9" /> <title>

我正在开发一个可以作为内部网站托管的web产品。我正试图找到一种编程方法,以防止IE9滑入IE9兼容性视图浏览器模式,即使“在兼容性视图中显示Intranet站点”可能处于启用状态

我正在使用此html页面进行测试:

<!DOCTYPE HTML>

<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=9" />
        <title>Company</title>
    </head>
    <body>
    </body>
</html>
但该页面仍将浏览器置于兼容视图浏览器模式

控制台显示:

HTML1202: http://intranet-site/test.html is running in Compatibility View because 'Display intranet sites in Compatibility View' is checked. 
test.html
这里有一个类似的问题:,Jacob对所选答案的评论表明,在IE9中,您无法覆盖“在兼容性视图中显示Intranet站点”设置。然而,他的评论是我发现的唯一提到这一点的地方。有人能证实或否认这一断言吗


还有什么我可以试试的吗?我不必告诉所有部署我们产品的客户取消选中其所有用户的“在兼容性视图中显示intranet站点”浏览器设置。

除非有人另有说明,否则oryol的评论建议所有功能都基于文档模式提供,因此,在获得所需的文档模式后,无需进一步控制浏览器模式。

我遇到了一个类似的问题—IE8/9中的页面呈现不正确,因为“兼容性”视图中的“显示Intranet站点”处于启用状态。要求所有用户禁用此功能,或要求使用组策略并为添加例外情况,我不知道还有多少其他intranet页面需要此功能,这不是一个选项。 由于X-UA-Compatible:IE=edge,文档模式正常。但我仍然有布局问题

原因: 兼容性模式导致IE向服务器发送另一个用户代理。对于IE8,9而言,这是IE7。 我的一些ASP.NET库会基于此进行一些检查,并呈现IE7特定的HTML/CSS,从而导致布局问题

解决方案: 如果服务器上的UserAgent字符串显示“IE7”,请将其修改为“IE9”。当然,这是一个肮脏的解决方案,因为理论上可能有一个真正的IE7客户端。 在我的事业(内联网)中,我知道我的用户只有IE>=8。
事实证明,更改UserAgent比预期的更难。我成功地应用了-从HttpWorkerRequest派生一个子类并拦截对UserAgent的请求。这间接地重载了
请求。UserAgent
并帮助解决了问题。

您在站点的IE开发工具中看到了哪种文档模式?文档模式实际上是IE9标准。这确保了渲染在标准模式下完成,但并不是所有javascript功能都可用,对吗?不,实际上您应该只检查文档模式。Browser model是一个初始参数,用于确定如何计算文档模式(默认情况下)。因此,如果您有正确的文档模式,那么一切都应该按预期工作。我认为缺少的功能是.querySelector()-仅当文档模式为IE8标准或更高版本时才可用。添加到上述html中的一个简短测试证实,即使浏览器模式为IE9兼容性视图(IE8中的IE8兼容性视图),也可以使用.querySelector。var bodyEl=document.querySelector('body');调试器;
X-UA-Compatible     IE=Edge
HTML1202: http://intranet-site/test.html is running in Compatibility View because 'Display intranet sites in Compatibility View' is checked. 
test.html