【问题标题】:IE8 Document mode not being set correctlyIE8 文档模式设置不正确
【发布时间】: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


    【解决方案1】:

    您确定您的订单正确吗?我刚刚尝试了这个页面,发现 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>
    

    【讨论】:

    • 我很确定顺序是正确的。我在 html head 部分中使用的第一行是元标记。它只是简单地忽略它,而是使用 IIS 在 http 标头中提供的那个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 2012-04-29
    • 2011-02-26
    • 2011-02-05
    相关资源
    最近更新 更多