对 X-UA-Compatible 标头使用“Edge”或“IE9”?

Posted

技术标签:

【中文标题】对 X-UA-Compatible 标头使用“Edge”或“IE9”?【英文标题】:Use 'Edge' or 'IE9' for X-UA-Compatible header? 【发布时间】:2012-02-03 06:53:09 【问题描述】:

在我的 .htaccess 文件中,我有这个标题:

标头集 X-UA-Compatible "IE=Edge,chrome=1"

我针对 IE7-9(和其他浏览器)优化了我的网站,但现在 IE10 即将推出,我是否仍应使用“Edge”值或“IE9”值来保证我的网站可以在 IE10 中运行?换句话说,IE10 是否会有这样的变化,以至于它可能会破坏我在 IE9 中运行良好的网站?

【问题讨论】:

【参考方案1】:

“保证”是一个强有力的词。 Windows 8/IE10 的测试版尚未发布,因此一切都可能发生变化。目前,“保证”您的网站使用未来未发布的 IE 版本的唯一方法是将兼容模式设置为 IE9。

不过,话虽如此,IE10 似乎是支持 html5 和 CSS3 的 IE9。它建立在 IE9 之上并添加了新的附加功能。您的网站(以及大多数,如果不是几乎所有的网站)很可能会在 IE10 中呈现而不会出现任何问题。

你一定要看看Internet Explorer 10 Developer Guide: CSS和这个overview of new features in IE10。

最好的办法是下载Windows Developer Preview(即:Windows 8 的预览版)并自己测试。这似乎是一项艰巨的工作,但您可以花一些时间在 Windows 8 上设置一个虚拟机,然后您就可以进行所有需要执行的测试了。

【讨论】:

【参考方案2】:

我会推荐IE=Edge,只需尝试 IE10 测试版并提前修复任何损坏的问题。

考虑一下您是否对 IE7 提出了相同的问题,然后您决定离开 IE=IE7。快进几年,你故意蹒跚新版本的 IE 以使用你过时的代码。最好始终使用最新的浏览器。

仅供参考 IE9 是一款功能强大的浏览器,您的代码仍会在 IE9 上强制使用 Chrome Frame。您可能只想为 IE8 及更早版本启用 Chrome Frame,您可以通过将 chrome 参数更改为 chrome=IE8 来实现。

【讨论】:

【参考方案3】:

如果您观察good coding techniques,您的网站应该可以正常工作。 IE10 看起来像完全可互操作的浏览器,因此如果您提供特定于 IE 的代码,您可能应该停止这样做,并将 IE10 视为与 Firefox 或 Chrome 相同的方式。

如果您使用<!doctype html> 或其他触发标准模式的文档类型,通常不需要IE=edge 标头。

【讨论】:

以上是关于对 X-UA-Compatible 标头使用“Edge”或“IE9”?的主要内容,如果未能解决你的问题,请参考以下文章

默认IE浏览器版本

X-UA 与 HTTP 标头的兼容性

不同的浏览器对 X-UA-Compatible 标签有何表现?

如何通过 ebextensions 配置文件添加 nginx 缓存控制标头?

如果启用了身份验证,Azure 上的查询/标头太大

获取 API:无法使用 Chrome 对请求标头添加授权