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

时间:2010-11-25 09:14:15

标签: html internet-explorer cross-browser x-ua-compatible

我在<head>

中有这个
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

它会强制IE的最新渲染模式,但兼容模式被认为是最后一种吗?

我的意思是,例如:在IE8中使用此代码,会强制它使用IE8或IE8兼容模式吗?

4 个答案:

答案 0 :(得分:63)

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

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

如果浏览器仍然在兼容模式下使用标题或元标记时,其中一个可能是原因:

  • 你缺少理智的doctype
  • 浏览器已设置为始终使用兼容模式
  • 该网站托管在“Intranet网站”上,并且设置了Intranet网站的默认设置

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

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

Compatibility View Settings

始终添加此元标记或http标题?

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

答案 1 :(得分: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

答案 2 :(得分:0)

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

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

为我解决了这个问题。我在网站和网络应用程序上使用它,它阻止IE8进入兼容模式,并显示为&#39;标准&#39;在IE10和IE11中。

答案 3 :(得分:-3)

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

否则,它应该看起来像那样(这会使IE8的行为像IE7和IE9,而且更新会像往常一样工作):

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