即使使用 X-UA 元标记,IE9 也会进入 IE7 兼容性视图

Posted

技术标签:

【中文标题】即使使用 X-UA 元标记,IE9 也会进入 IE7 兼容性视图【英文标题】:IE9 going into IE7 compatibility view even with X-UA meta tag 【发布时间】:2015-08-11 02:51:21 【问题描述】:

所以根据标题,我使用X-UA-Compatible 元标记来强制当前 IE 版本中的标准模式。 (以下 html

尽管如此,在 IE9 中,它会在用户机器的百分比上进入兼容模式。我使用 Mac,它在 Win7 IE9 虚拟机和我的 Windows 机器的 IE9 上运行良好。但是当我在同事的笔记本电脑上测试时,它会直接进入兼容性视图。

我尝试了以下元标记,但没有成功:

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

我已尝试使用this answer 将 Internet Explorer 设置重置为相同的问题,但仍然无法正常工作。

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7">
        <title>Site</title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
...

【问题讨论】:

注意:本站不是内网站点 IIRC,使用条件注释将解析器提交到一个版本,因此之后&lt;meta http-equiv="X-UA-Compatible" 无效。 Niklas Brunberg 的回答避免了这种情况,因为真正的 http 标头将在条件 cmets 之前处理。 【参考方案1】:

应使用 Microsoft specifies that a comma 分隔每种模式,而不是示例 sn-p 中的分号,如下所示:

<meta http-equiv="X-UA-Compatible" content="IE=9,8,7"> 

但我怀疑如果您已经单独尝试过content="IE=edge",这可能不是重点。第二种解决方案是完全避免使用元标记,而是将 X-UA-Compatible 作为 HTTP 标头发送。

如果这不起作用,我会查看您同事笔记本电脑中的网络设置(不仅仅是 IE 的设置),看看他的网络是否被视为 Intranet,尽管它不是 Intranet。

【讨论】:

感谢您的回复。我已经使用this answer 中的代码更改了Web 服务器标头,并且它似乎可以正常工作。我只是要做一些最终检查,如果没问题,我会将您的答案标记为最佳。感谢您的帮助。

以上是关于即使使用 X-UA 元标记,IE9 也会进入 IE7 兼容性视图的主要内容,如果未能解决你的问题,请参考以下文章

HTML1115:X-UA 兼容 META 标记('IE=9,IE=8,chrome=1')被忽略,因为文档模式已经完成

IE兼容模式:'X-UA兼容'标签'Edge'

在 SharePoint 2010 中覆盖 X-UA 兼容元

如何强制 IE10 以 IE9 文档模式呈现页面

占位符在 IE8 和 IE9 中不起作用,即使使用 jQuery 插件

如何从服务器端强制关闭 IE 兼容模式?