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