0

我有一个网站,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 和更早的浏览器中?

4

1 回答 1

0

你确定你的订单正确吗?我刚刚尝试了我在这里找到的这个页面,我的浏览器默认为“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>
于 2012-10-12T19:35:13.377 回答