如何避免IE8兼容性按钮?

46

在IE8中,微软引入了一个名为“兼容性视图”的新模式,它可以将页面呈现为IE7的样式。

你可以在stackoverflow.com的地址栏旁边看到这个按钮。但是当您访问google.com / live.com时,您不会看到兼容性模式按钮。我们如何确保页面不向用户显示此按钮?

6个回答

84

简短回答:

将以下内容放在标签中,即可告诉浏览器您的页面可在IE 8中正常使用:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

根据Jon Hadley的评论,为了确保使用最新(而不仅仅是IE8)的渲染引擎,您可以使用以下方法:

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

13
为确保使用最新的渲染引擎(不仅仅是IE8),请添加以下内容:<meta http-equiv="X-UA-Compatible" content="IE=edge"> - Jon Hadley
5
想要补充的是头部元素的顺序很重要。根据MSDN的说法:"……它必须在网页的头部(HEAD部分)中出现,在除标题元素和其他meta元素之外的所有其他元素之前。" http://msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx - kaptan
1
@kaptan:不错的补充。由于浏览器模式会影响脚本和CSS的工作方式,因此它必须放在它们之前是很合理的。 - Guffa
1
如果访问者使用Google的Chrome Frame,您还可以添加chrome=1:<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">。有关更详细的说明,请参见此stackoverflow答案 - Lando

25

来自这里

有时“兼容性视图”按钮不会显示。

该按钮位于地址栏旁边的“停止”和“刷新”按钮上。有几种情况下,用户无需采取任何措施,因此“兼容性视图”按钮将不会显示:

如果您正在查看Internet Explorer页面(例如about:InPrivate)

如果您正在查看已声明通过版本标记/HTTP标头“准备”用于Internet Explorer 8的页面(无论此标记是否触发Quirks、IE7标准或IE8标准,都不会显示按钮)

如果您正在查看一个内部网页并且选中了“在兼容性视图中显示内部网站”复选框;如果您正在查看任何网页并且选中了“在兼容性视图中显示所有网站”复选框

如果您正在查看包含在Microsoft提供的兼容性视图更新列表中的网页,并且选中了“包括来自Microsoft的更新网站列表”复选框

如果您切换了通过开发人员工具栏的“文档模式”或“浏览器模式”设置

因此您可能需要关注版本标记/HTTP头,该博客文章中有更多详细信息,还可以在这里查看。


6
微软现在依赖员工个人博客来进行文档编写,这很棒,不是吗?在谷歌上搜索时,我总是找到冗长而过时的博客文章。 - Frank Krueger
2
博客似乎在谷歌的搜索结果中具有很高的权重。公正地说,我在这里引用的博客文章本质上是一个指向适当的MSDN文章的大链接,因此正式文档确实存在。 - Matt Hamilton

6
如果启用了“在兼容性视图中显示内部网站”或“在兼容性视图中显示所有网站”设置(在工具->兼容性视图设置下),则无论文档的HTML内容是什么,页面都将始终以某种形式显示为兼容性视图。这意味着即使文档中包含,您仍然会注意到页面以兼容性视图显示,除非禁用这些设置,否则无法做任何事情来禁用它。

当然,仍然需要一些例外情况来测试兼容模式下的真/假!:-( 感谢信息。 - Peter V. Mørch

3
根据MSDN文章关于兼容性视图,以下列表描述了启用兼容性视图的不同方法:
  • 在查看网页时,单击地址栏中的“兼容性视图”按钮。显示时,此按钮位于刷新按钮左侧,并包含一张破碎纸片的图片。这将为正在查看的网站域中的所有文档启用兼容性视图。
  • 启用“在兼容性视图设置中显示所有网站”设置。
  • 启用“通过兼容性视图自动恢复页面布局错误”设置,并且网页停止响应或导致浏览器崩溃。发生这种情况时,Internet Explorer会在从问题中恢复后以兼容性视图打开该页面。
  • 计算机管理员启用标识要在兼容性视图中打开的站点的组策略。
  • 您已使用F12开发人员工具将浏览器模式更改为将Internet Explorer识别为早期版本的浏览器。
  • 启用了兼容性视图列表,其中定义了自动显示为兼容性视图的网站列表。

要避免/禁用/覆盖兼容性视图,您需要执行上述建议的反向操作。

兼容性视图列表是由微软维护的一个XML文件。

如果您想将网站从兼容性视图列表中移除(或对移除进行争议),请让整个站点的所有者确认该域名是否在兼容性视图列表中。如果是,请发送一封电子邮件到iepo@microsoft.com,邮件中需包含以下信息:

所有者姓名 公司职务 公司名称 街道地址 电子邮件地址 电话号码 网站地址

微软将审核提供的信息,并在下次计划更新时将您的网站从兼容性视图列表中移除。


1

以下链接在IE中运行良好,菜单栏正常显示: http://line25.com/wp-content/uploads/2012/css-menu/demo/index.html

但是同样的内容托管在内部网络上时,所有链接都会一个接一个地显示,而不是菜单栏。地址栏中没有显示兼容性视图按钮。

经过以下更改,菜单栏正确显示,并且地址栏中显示了兼容性视图按钮。

工具->兼容性视图设置->取消选中“在兼容性视图中显示内部网站”

非常感谢这个宝贵的输入。


1
我遇到了兼容性视图的问题,结果发现我的一些PHP文件保存在UTF-8字符编码中,这可能会让IE感到困惑。大部分网站文件都是以Codepage 1252保存的。
现在,我将所有文件设置为“西欧(Windows) - Codepage 1252”保存,我的显示问题就解决了。
这里的教训是,不要混合使用字符编码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接