IE8文档模式未正确设置

时间:2012-10-12 18:27:32

标签: asp.net http-headers

我有一个网站,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兼容性视图中(它是一个Intranet站点),但即使在正常的IE8模式下,它仍然具有相同的文档模式问题。

我认为页面上的元标记会覆盖服务器初始标头中发送的内容。我还有什么办法可以改变这一页的文档模式吗?

编辑:如果我将以下内容放在我的aspx页面Response.AddHeader("X-UA-Compatible", "IE=7");的Page_Load中,我可以强制使用IE7文档模式,所以我现在在IE = Edge标题后显示此标题,所以只有第二个被解释。这实际上并没有解决我的问题,因为上面的元标记具有不在IE9或IE10中使用的优点,并且当强制使用IE7文档模式时页面的一些细节消失。我只是特别需要这个适用于IE8及更早版本。

此外,如果我删除条件CSS,它似乎正确的文档模式。那么有条件的CSS可能在页面加载后执行,如果是这样,我如何修复它以使IE7文档模式只出现在IE8和早期的浏览器中?

1 个答案:

答案 0 :(得分:0)

您确定订单是否正确?我刚刚尝试了这个页面,我发现HERE,我的浏览器默认为“IE7标准”。

<html>
<head>      
  <!--[if lt IE 9]>
  <meta http-equiv="X-UA-Compatible" content="IE=7" >
  <![endif]-->
  <title>My webpage</title>
</head>
<body>
  <p>Content goes here.</p>
</body>
</html>