1

我们对某些 Internet Explorer 版本有一些奇怪的问题,所以我们有一个浏览器开关

<head>
<!--[if IE 6]>
  <!-- load some IE6 stuff -->
  <meta http-equiv="X-UA-Compatible" content="IE=6" />
<![endif]-->
<!--[if IE 7]>
  <!-- load some IE7 stuff -->
  <meta http-equiv="X-UA-Compatible" content="IE=6" />
<![endif]-->

<!--[if IE 8]>
  <!-- load some IE8 stuff -->
  <meta http-equiv="X-UA-Compatible" content="IE=8" />
<![endif]-->

<!--[if IE 9]>
  <!-- load some IE9 stuff -->
  <meta http-equiv="X-UA-Compatible" content="IE=8" />
<![endif]-->
</head>

如果我像这样加载它,我会在 IE9 Developer 插件中看到:

HTML1115:X-UA 兼容的 META-Tag ("IE=8") 被忽略,因为 documentmodus 已经加载。

(最初是德语,所以我应该是翻译)

并且文档方式仍然是IE9

如果我把它写进我的<head>标签:

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

IE9 将被加载为 IE8,所以这行得通,但是 IE6 的东西当然做错了....

那么有什么方法可以像我第一次尝试那样做吗?

4

1 回答 1

5

你不能这样做。在元素之前可以使用的东西数量有限X-UA-Compatible meta

X-UA-Compatible 标头不区分大小写;但是,它必须出现在网页的标题(HEAD 部分)中,位于除标题元素和其他元元素之外的所有其他元素之前。

(来自http://msdn.microsoft.com/en-us/library/ie/cc288325%28v=vs.85%29.aspx

这就是为什么您的标记不能按预期工作的原因 - 条件注释会导致所有后续X-UA-Compatible声明都被忽略。

另请注意,X-UA-Compatible仅在 IE8 和更新版本中受支持 - 它在 IE6 和 IE7 中完全被忽略。如果您仅使用以下内容:

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

那么 IE6 和 IE7 将使用它们自己的渲染,并且 IE8 以上的所有版本都会将文档渲染为 IE8。

于 2012-04-12T13:59:44.333 回答