ChatGPT解决这个技术问题 Extra ChatGPT

"X-UA 兼容" 内容="IE=9; IE=8; IE=7; IE=EDGE"

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />

其实这句话的意思是什么?一些示例使用 , 来分隔 IE 的版本,而一些使用 ;;哪个是对的?顺序 IE=9;即=8;即=7; IE=EDGE 有一定的重要性,我想知道这一点。

编辑:我正在使用 <!DOCTYPE html>

我认为 IE=9 不适合 X-UA-Compatible

m
mikemaccana

如果您支持 IE,对于 Internet Explorer 8 及更高版本,此:

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

强制浏览器呈现为该特定版本的标准。 IE7 及以下不支持。

如果你用分号分隔,它会设置不同版本的兼容性级别。例如:

<meta http-equiv="X-UA-Compatible" content="IE=7; IE=9" />

将 IE7 和 IE8 呈现为 IE7,但将 IE9 呈现为 IE9。它允许不同级别的向后兼容性。但是,在现实生活中,您应该只选择以下选项之一:

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

这使得测试和维护更加容易。虽然通常更有用的版本是使用 Emulate:

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

为了这:

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

它强制浏览器以最新版本的标准进行渲染。

如需更多信息,there is plenty to read about on MSDN


顺序 IE=9;即=8;即=7; IE=EDGE 有一定的重要性,我想知道
我对此的理解有点差距。如果我的测试目标是 IE8,但我不想破坏 IE7,你会将这个元标记设置为什么?还有其他浏览器使用这个吗?
IE7 不会识别这个,它是在 IE8 中首先实现的。上面对 IE7 的全部引用是,例如,如果您使用 IE7 作为测试的基础,并且希望所有更现代的 IE 版本都像在 IE7 标准中那样呈现。没有其他浏览器使用这个标签。
IE10 使用 IE=8 (YMMV) 可以很好地呈现旧的 Web 应用程序,但是 IE11 对 IE8 的仿真会中断。此 UA:content="IE=8; IE=11" 在 IE10 中提供浏览器模式 IE10 兼容文档模式 IE8 标准,在 IE11 中提供文档模式边缘。 IE10 和 IE11 UA 分配的问题之一是 Microsoft 删除了 conditional comments
基于该元标记,IE11 不会模拟 IE8,它会假定 IE11(如分号分隔列表中给出的那样)。该列表还将解释回退到 IE8 标准,因为 IE10 不知道 IE11 的存在,就像 IE8 无法应用 IE9 标准一样。您是否尝试过简单地使用 content="IE=8"?或者,最好是content="IE=EmulateIE8"
C
Community

在某些情况下,可能需要将网页的显示限制为 Internet Explorer 早期版本支持的文档模式。您可以通过使用与 x-ua 兼容的标头来提供页面来做到这一点。有关详细信息,请参阅指定旧文档模式。 - https://msdn.microsoft.com/library/cc288325

因此,此标签用于对网页进行未来验证,以便使用较旧/兼容的引擎以与创建者预期相同的方式呈现它。

确保您已检查它与您指定的 IE 版本一起正常工作。