3

我无法意识到元 http-equiv="X-UA-Compatible" content="IE=edge.

1)如果某些用户有某个版本的IE,并且他尝试打开具体页面,该页面将在用户拥有的IE版本(最新版本)中打开。我不明白为什么我们需要该标签来维护它?

2)如果用户明确表示他的 IE(例如 IE9)想像以前的 IE 版本(例如 IE8)一样打开浏览器页面,这个元标记会阻止它吗?

3) 如果我有 IE7 或 IE8 并且此页面有元标记怎么办?该页面将在 IE7 或 IE8 中打开取决于我的计算机上已经拥有的最新版本的浏览器。

我真的看不到这个元标记的用途(除非用户已经调整新版本的浏览器以打开旧版本的页面),或者我在这里错过了一些东西。


请参阅 Microsoft 文档:

http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx

注意: 边缘模式仅用于测试目的;不要在生产环境中使用它。

因为它强制所有页面以标准模式打开,无论 Internet Explorer 的版本如何,您可能会想将其用于使用 Internet Explorer 查看的所有页面。不要这样做,因为 X-UA-Compatible仅从 Windows Internet Explorer 8 开始支持标头。

这意味着它只是为了快速测试当前受限于特定版本的网站的最新 IE 版本。

要永久使用最新版本,请改用 HTML5 文档类型:<!DOCTYPE html>
见文章简介:

在大多数情况下,我们建议网站使用 HTML5 文档类型来支持最广泛的现有和新兴标准,以及最广泛的网络浏览器。

编辑:我刚刚在另一篇 SO 帖子中 注意到了这个答案。这表明如果用户出于某种原因在页面的兼容模式下运行 IE,您将通过设置 X-UA-Compatible=EDGE 来覆盖它。这意味着,如果您知道使用最新标准将最好地显示您的页面,即使用户已激活兼容模式,您也可以强制 IE 以边缘模式运行。有关可以激活兼容模式的不同方式的详细信息,请参阅其他答案。

作为一个额外的效果,当你设置 X-UA-Compatible=EDGE 时,IE 也会隐藏地址栏中的兼容性按钮。

4

5 回答 5

6

"1) 如果某些用户有某个版本的 IE,并且他尝试打开具体页面,则该页面将在用户拥有的 IE 版本(最新版本)中打开。我不明白为什么我们需要那个标签来维护它?”

IE 8* 及更高版本内置了多个渲染引擎。选择哪个 IE 用于特定页面取决于几个因素。有时它默认为旧模式,因此即使您使用的是 IE10,它也可能会在 IE7 兼容性视图中打开特定页面。

如果您在您的页面上使用标准的 html5 文档类型,例如<!DOCTYPE html>,那么您会认为您不必担心,并且在互联网上这或多或少是正确的。但是,出于对 Microsoft 以外的任何人都没有意义的原因,如果 IE 在 intRAnet 上打开页面,它默认为旧的兼容性视图,即使指定了 html5 文档类型。

使用<META>您提到的标签告诉 IE 始终使用它拥有的最新(“边缘”)渲染引擎。

“2)如果用户明确说他的 IE(例如 IE9)想像以前的 IE 版本(例如 IE8)一样打开浏览器页面,这个元标记会阻止它吗?”

不可以。用户仍然可以使用内置的开发工具来更改文档模式。

“3) 如果我有 IE7 或 IE8 并且此页面有元标记怎么办?该页面将在 IE7 或 IE8 中打开取决于我的计算机上已经拥有的最新版本的浏览器。

是的。当然IE8不能在IE9模式下打开页面。但正如我上面提到的那样,元标记告诉您使用的任何版本的 IE 使用它具有的最新模式,而不是(可能)默认为旧模式。

*或者我的意思是 IE 7 及更高版本?我忘了。

于 2014-02-27T06:21:33.893 回答
6

请参阅 Microsoft 文档:

http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx

注意: 边缘模式仅用于测试目的;不要在生产环境中使用它。

因为它强制所有页面以标准模式打开,无论 Internet Explorer 的版本如何,您可能会想将其用于使用 Internet Explorer 查看的所有页面。不要这样做,因为 X-UA-Compatible仅从 Windows Internet Explorer 8 开始支持标头。

这意味着它只是为了快速测试当前受限于特定版本的网站的最新 IE 版本。

要永久使用最新版本,请改用 HTML5 文档类型:<!DOCTYPE html>
见文章简介:

在大多数情况下,我们建议网站使用 HTML5 文档类型来支持最广泛的现有和新兴标准,以及最广泛的网络浏览器。

编辑:我刚刚在另一篇 SO 帖子中 注意到了这个答案。这表明如果用户出于某种原因在页面的兼容模式下运行 IE,您将通过设置 X-UA-Compatible=EDGE 来覆盖它。这意味着,如果您知道使用最新标准将最好地显示您的页面,即使用户已激活兼容模式,您也可以强制 IE 以边缘模式运行。有关可以激活兼容模式的不同方式的详细信息,请参阅其他答案。

作为一个额外的效果,当你设置 X-UA-Compatible=EDGE 时,IE 也会隐藏地址栏中的兼容性按钮。

于 2013-07-04T10:14:57.973 回答
2

您可以使用元标记明确告诉 IE 浏览器使用其最新可用的渲染引擎。这也可以防止 IE 在渲染页面时打开 Quirks 模式。

看看这个: http ://technowide.net/2013/06/21/forcing-ie-browsers-to-behave-properly/

于 2013-08-18T08:00:55.363 回答
2

忍受它的无意义...

正如其他人所说,不使用此标记会在地址栏中显示(至少在 IE9 中)兼容性视图图标(一个象征性的破碎页面图标,在重新加载和停止旁边)。同样在完美的 W3C 验证<!DOCTYPE html>html5 页面上。看到这个图标可能会触发用户按下它。这确实导致了怪癖模式,因此 padding<=>width 计算更改为过去,您的页面看起来很糟糕。(干得好,M$,这真的很有帮助……)

因此这个标签有助于抑​​制它。

google.com也使用边缘标志(虽然他们强烈主张'正确' html5,嗯?) nytimes.com不使用边缘标志。-boom- 还有兼容性标志。

仔细查看 html5 推广网站... html5boilerplate.com没有图标,没有元标记,但因此它位于 http 标头中。

简而言之:看起来没有什么好办法。一个不面向用户的、浮夸的/丑陋的标志比任何有可能使您的页面看起来更糟或看似无效的任何面向用户的标志都要好(作为最终用户,无论何时提供任何“兼容性视图”,我都会得出这样的结论)

于 2014-01-03T08:20:38.137 回答
1

您可以将其添加到您的 .htacces

<IfModule mod_headers.c>
    Header set X-UA-Compatible "IE=edge"
    # `mod_headers` can't match based on the content-type, however, we only
    # want to send this header for HTML pages and not for the other resources
    <FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svgz?|ttf|vcf|webapp|webm|webp|woff|xml|xpi)$">
        Header unset X-UA-Compatible
    </FilesMatch>
</IfModule>
于 2013-12-13T11:14:32.220 回答