IE:为什么兼容性视图在某些网站上消失了?


25

IE9为某些网站显示“兼容模式”按钮,而对于其他网站则不显示。对于其他选项,我仍然可以通过“工具”>“兼容性视图设置”将其添加来启用它,然后按预期运行。

在此处输入图片说明

为什么此按钮不总是显示?有没有办法覆盖它?

Answers:


26

按钮的存在取决于此类型的元标记:

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

文件相容性模式

使用最新版本的Internet Explorer,这些模式可以控制网页支持的功能以及页面的显示方式。

  • IE=EmulateIE8 模式告诉Internet Explorer使用指令来确定如何呈现内容。标准模式指令以Internet Explorer 8标准模式显示,而怪癖模式指令以IE5模式显示。与IE8模式不同,仿真IE8模式遵循该指令。

  • IE=EmulateIE7告诉Internet Explorer使用指令来确定如何呈现内容。标准模式指令以Internet Explorer 7标准模式显示,而怪癖模式指令以IE5模式显示。与IE7模式不同,仿真IE7模式遵循该指令。对于许多网站,这是首选的兼容模式:

  • IE=5 呈现内容,就像通过Internet Explorer 7的怪癖模式显示内容一样,这与在Internet Explorer 5中显示内容的方式非常相似。

  • IE=7 不论页面是否包含指令,都将呈现内容,就像Internet Explorer 7的标准模式所显示的一样。

  • IE=8 支持许多已建立的标准,包括W3C级联样式表2.1规范和W3C Selectors API;它还为W3C级联样式表3级规范(工作草案)和其他新兴标准提供了有限的支持。

  • IE=9 为已建立和新兴的行业标准提供最高的支持,包括HTML5(工作草案),W3C级联样式表第3级规范(工作草案),可缩放矢量图形(SVG)1.0规范等。

  • IE=Edge 告诉Internet Explorer以可用的最高模式显示内容。使用Internet Explorer 8,这等效于IE8模式。

如果将来(假设)的Internet Explorer版本支持更高的兼容性模式,则设置为边缘模式的页面将以该版本支持的最高模式显示。使用Internet Explorer 8查看时,这些页面将以IE8模式显示。并使用Internet Explorer 9查看时处于IE9模式。

摘要

如果出现以下情况,IE将不会显示“兼容性视图”按钮:

  • 元标记的内容等于您使用的IE版本;要么
  • meta标签的内容设置为IE=edge

参考

定义文档兼容性(Internet Explorer)


2
但是,对此,如果网站创建者考虑了标签的想法,人们可能会期望网站能够很好地呈现……
Arjan 2010年

8

除了Brian回答中<meta>说明的标签外:

如果在本地(Intranet)站点上发生这种情况:默认首选项似乎总是使Intranet站点在兼容模式下运行,甚至更糟的是,根本不显示该按钮。

禁用“在兼容性视图中显示Intranet站点”设置也会使该按钮也出现在本地站点上,因此您可以将其关闭。请注意,“兼容性视图设置”仅在“完整”菜单(按Alt-T)中列出,而不在速记齿轮图标中列出:

替代文字 替代文字 替代文字

或者,使IE不再识别Intranet站点


2
这是因为许多公司的Intranet网站和内部Web应用程序都已计划在IE6上运行。微软知道,大多数IE6用户都是被迫使用IE6的员工。默认情况下,使所有站点在兼容模式下运行都可以平滑过渡到IE的更新版本,但不平滑。如果许多公司都喜欢[删除],那么情况就是这样。您必须记住零花钱。公司只在乎钱。编辑出公司名称以保护他们。直到出现Google / China骇客事件之前,该公司甚至没有切换到更新版本。
SgtOJ

@布莱恩,我想你是对的。不过太糟糕了:一个更好的解决方案是默认激活它。愚蠢的IE偏好设置不仅激活了兼容性模式,而且还完全隐藏了兼容性按钮。
Arjan

哇。从来不知道。整日让我发疯,直到我遇到你的职位。谢谢!
系统停机

如果您不希望兼容模式,但是选中了“在兼容视图中显示Intranet站点”,会发生什么?这会覆盖<meta http-equiv="X-UA-Compatible" content="IE=edge">标签吗?还是meta标签会覆盖兼容性设置复选框?

@Ben,自从我不得不使用IE已有一段时间了,但是我认为启用“在Compatibility View中显示Displaynet网站”确实可以覆盖<meta http-equiv="X-UA-Compatible" content="IE=edge">。我不是100%确信,但是我确实回想起由于不理解页面显示不佳的原因而非常恼火,因此我只能假定那些页面确实包含了标签。但是然后,也许那些日子我不知道那个标签……
Arjan

1

根据有关兼容性视图的MSDN上的这篇综合文章,以下列表介绍了启用兼容性视图的不同方法:

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

要禁用/覆盖兼容性视图,您必须执行上述建议的相反操作。

兼容性视图列表是Microsoft维护的XML文件。

要从“兼容性视图”列表中删除您的网站(或对从列表中删除您的网站提出异议),请总体网站所有者验证域站点是否出现在“兼容性视图”列表中。如果是这样,请将电子邮件发送到iepo@microsoft.com,其中包含以下信息:

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

Microsoft将检查提供的信息,并在下一个计划的更新中从“兼容性视图列表”中删除您的网站。


0

我只是花了一段时间试图确定为什么兼容性视图图标在我的公司域之一中不可用,而它似乎没有满足此问题的其他答案中所述的任何条件。

解释是“与X-UA兼容”不必是元标记。也可以将其指定为HTTP标头(不是HTML内容的一部分),在我遇到麻烦的域上就是这种情况。

此MS页具有更多详细信息,其中许多出现在SgtOJ的答案中:http : //msdn.microsoft.com/zh-cn/library/jj676915( v=vs.85) .aspx

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.