【发布时间】:2012-04-05 00:13:14
【问题描述】:
我正在开发一个可以作为 Intranet 站点托管的网络产品。我正在尝试找到一种编程方式来防止 IE9 滑入 IE9 兼容性视图浏览器模式,即使“在兼容性视图中显示 Intranet 站点”可能已打开。
我正在使用这个 html 页面进行测试:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<title>Company</title>
</head>
<body>
</body>
</html>
我已将其放入 IIS 配置中:
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
在这里推荐:https://stackoverflow.com/a/5887546,并检查了 IE9 中的响应标头并查看:
X-UA-Compatible IE=Edge
但页面仍将浏览器置于 Compatibility View 浏览器模式。
控制台显示:
HTML1202: http://intranet-site/test.html is running in Compatibility View because 'Display intranet sites in Compatibility View' is checked.
test.html
这里有一个类似的问题:https://stackoverflow.com/a/3726605/1279516,其中 Jacob 对所选答案的评论表明,在 IE9 中,您无法覆盖“在兼容性视图中显示 Intranet 站点”设置。然而,他的评论是我发现的唯一提到这一点的地方。任何人都可以确认或否认这一说法吗?
还有什么我可以尝试的吗?我不应该告诉所有部署我们产品的客户为所有用户取消选中“在兼容性视图中显示 Intranet 站点”浏览器设置。
【问题讨论】:
-
您在您网站的 IE 开发工具中看到了哪种文档模式?
-
文档模式其实是IE9标准。这确保了渲染是在标准模式下完成的,但并不是所有的 javascript 功能都可用,对吗?
-
不,实际上你应该只检查文档模式。浏览器模型是初始参数,它决定了如何计算文档模式(默认情况下)。所以,如果你有正确的文档模式,那么一切都应该按预期工作。
-
我认为我缺少的功能是 .querySelector() - 仅在文档模式为 IE8 标准或更高版本时可用。添加到上述 html 的简短测试确认 .querySelector 即使在浏览器模式为 IE9 兼容性视图(IE8 中的 IE8 兼容性视图)时也可用。
标签: html browser internet-explorer-9 doctype