56

我有这个<head>

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

它将强制 IE 使用最新的渲染模式,但兼容模式是否被认为是最后一种?

我的意思是,例如:将此代码与 IE8 一起使用,它会强制它使用 IE8 或 IE8 兼容模式?

4

4 回答 4

64

该标签将尝试强制浏览器使用浏览器支持的最新呈现模式。它不会触发兼容模式。

请注意,标签必须是头部的第一个标签,否则它将不起作用。如果可能,这一事实有利于使用 HTTP 标头,因为 HTTP 标头中的顺序无关紧要。

如果在您使用标头或元标记时浏览器仍然处于兼容模式,则可能是以下原因之一:

  • 你缺少一个理智的文档类型
  • 浏览器已设置为始终使用兼容模式
  • 该站点托管在“Intranet 站点”上,并且已设置 Intranet 站点的默认设置

更改浏览器兼容性视图设置

Microsoft 认为至少 192.168.xx 位于“Intranet 站点”上。IE8/IE9 中的 Intranet 站点默认使用兼容模式。这对于许多业务应用程序来说是一个大问题,因为即使使用此元标记,程序员也无法覆盖此选项。(“在兼容性视图中显示 Intranet 站点”不能被元标记或 http 标头覆盖 - 在这种情况下,浏览器完全控制兼容性视图)

兼容性视图设置

总是添加此元标记或 http 标头?

使用此元标记的另一个好处是“兼容性视图”图标已从浏览器的地址栏中删除。至少您的用户无法使用该按钮决定渲染模式。

于 2011-04-15T07:56:21.710 回答
2

即使您已取消选中“在兼容性视图中显示 Intranet 站点”选项,并且在响应标头中包含 X-UA-Compatible,您的浏览器仍可能默认为“兼容性视图”的另一个原因 - 您的组策略。查看您的控制台以获取以下消息:

HTML1203:xxx.xxx 已通过组策略配置为在兼容性视图中运行。

其中 xxx.xxx 是您网站的域(即 test.com)。如果您看到这一点,则您的域的组策略已设置,因此任何以 test.com 结尾的站点都将自动以兼容模式呈现,而不管文档类型、标题等如何。

有关详细信息,请参阅以下链接(解释 html 代码): http: //msdn.microsoft.com/en-us/library/ie/hh180764 (v=vs.85).aspx

于 2013-07-24T15:38:59.610 回答
0

我不是专家,但通过反复试验:

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

为我解决了这个问题。我在网站和 webapps 上使用了它,它阻止了 IE8 进入兼容模式,并在 IE10 和 IE11 中显示为“标准”。

于 2015-04-16T09:29:14.363 回答
-3

Edge单独使用关键字有什么意义?我的意思是,如果您希望 IE 使用最新的渲染引擎,那么只需删除整个元标记。

否则,它应该看起来像这样(这将使 IE8 的行为类似于 IE7 和 IE9,并且更新版本将照常工作):

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=Edge" />
于 2011-06-25T23:20:03.663 回答