我有一个网站,IIS 在标头中发送以下内容(这对于整个网站都是正确的):
X-UA-Compatible: IE=Edge
但是,在特定页面上,我的<head>
部分顶部有以下内容:
<!--[if lt IE 9]>
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<![endif]-->
IE8 正确解释了这一点,因为它显示在我查看页面源代码的顶部。但是,它永远不会将我的文档模式从“IE8 标准”更改为“IE7 标准”。浏览器模式默认在 IE8 兼容性视图中(它是一个内网站点),但即使在正常的 IE8 模式下,它仍然存在相同的文档模式问题。
我认为页面上的元标记会覆盖服务器初始标头中发送的任何内容。我还能做些什么来更改这一页的文档模式吗?
编辑:如果我将以下内容放在我的 aspx 页面的 Page_Load 中,我可以强制 IE7 文档模式,Response.AddHeader("X-UA-Compatible", "IE=7");
所以我现在在 IE=Edge 标题之后显示了这个标题,所以只有第二个被解释。但这实际上并没有解决我的问题,因为上面的元标记具有不在 IE9 或 IE10 中使用的优点,并且当强制进入 IE7 文档模式时,页面的一些细节会消失。我只是特别需要它来为 IE8 和更早版本工作。
此外,如果我删除条件 CSS,它似乎使文档模式正确。那么是否有可能在页面加载后执行条件 CSS,如果是这样,我该如何修复它以使 IE7 文档模式仅显示在 IE8 和更早的浏览器中?