IE兼容性模式:“X-UA兼容”标签“边缘”
我在<head>
有这个:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
它会强制IE的最新渲染模式,但兼容模式被认为是最后一个?
我的意思是,例如:使用这个代码与IE8,它会强制它使用IE8或IE8兼容模式?
该标签将尝试强制浏览器使用浏览器支持的最新渲染模式。 它不会触发兼容模式。
请注意,标签必须是头部的第一个标签,否则将无法使用。 如果可能的话,这个事实有利于使用HTTP头,因为HTTP头中的顺序无关紧要。
如果在使用标题或元标记时浏览器仍然以兼容模式结束,则可能是以下原因之一:
- 你缺less一个理智的文档types
- 浏览器已被设置为始终使用兼容模式
- 该站点位于“Intranet站点”上,并设置了Intranet站点的默认设置
更改浏览器兼容性视图设置
Microsoft认为至less192.168.xx是在“Intranet站点”上。 IE8 / IE9中的Intranet站点默认使用兼容模式。 对于许多商业应用来说,这是一个巨大的问题,因为即使使用这个元标记,程序员也不能覆盖这个选项。 (“在兼容性视图中显示Intranet站点”不能被元标记或http头覆盖 – 在这种情况下,浏览器完全控制兼容性视图)
总是添加这个元标记或一个http头?
使用这个元标记的另一个好处是从浏览器的地址栏中删除“兼容性视图”图标。 至less您的用户可以不使用该button来决定渲染模式。
即使您没有选中“在兼容性视图中显示Intranet站点”选项,并在响应头中包含X-UA兼容,您的浏览器可能会默认为“兼容性视图”的另一个原因是您的组策略。 查看您的控制台以获取以下消息:
HTML1203:xxx.xxx已被configuration为通过组策略在兼容性视图中运行。
其中xxx.xxx是您网站的域名(即test.com)。 如果你看到这个,那么你的域的组策略是这样设置的,这样任何以test.com结尾的站点都将自动以兼容模式呈现,而不pipe文档types,头文件等。
有关更多信息,请参阅以下链接(解释html代码): http : //msdn.microsoft.com/en-us/library/ie/hh180764 (v=vs.85) .aspx
我不是专家,但通过反复试验:
<meta http-equiv="X-UA-Compatible" content="IE=8, IE=9, IE=edge"/>
为我解决了这个问题。 我在网站和webapps上使用了这个function,它阻止了IE8进入兼容模式,并在IE10和IE11中显示为“标准”。
单独使用Edge
关键字有什么意义? 我的意思是,如果你想要IE浏览器使用最新的渲染引擎,那么就放弃整个元标记。
否则,它应该看起来像这样(这将使IE8行为像IE7和IE9和更新将像往常一样工作):
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=Edge" />