即使使用 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,使用条件注释将解析器提交到一个版本,因此之后<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')被忽略,因为文档模式已经完成
在 SharePoint 2010 中覆盖 X-UA 兼容元