HTML条件注释在IE9中表现出奇怪的行为

时间:2014-03-25 15:30:40

标签: html internet-explorer internet-explorer-9 conditional-comments

请看这个html页面:

<!DOCTYPE html>
<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]><html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]-->
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Test</title>
    <meta name="description" content="">

    <!--[if IE 7]>
        <script type="text/javascript">alert("IE7")</script>
    <![endif]-->

    <!--[if IE 8]>
        <script type="text/javascript">alert("IE8")</script>
    <![endif]-->

    <!--[if IE 9]>
        <script type="text/javascript">alert("IE9")</script>
    <![endif]-->

</head>
<body data-pagename="home">

</body>
</html>

我无法理解为什么如果我在IE8和IE7中查看它都可以正常工作,而如果我在IE9中查看该页面,则警报就好像我在IE7中一样。
如果我改变了第一行在头标记之前

<!DOCTYPE html>
<html class="no-js">
<head>

一切正常。

好像doctype和head之间的某些东西改变了渲染beahviour。 问题是: 这是我的错,也许是因为我以非法的方式使用某些东西或者是IE9的错误?

1 个答案:

答案 0 :(得分:0)

  

我无法理解为什么如果我在IE8和IE7中查看它一切正常,而如果我在IE9中查看该页面,则警报就像我在IE7中一样。

这很复杂:

  • 是&#34;在兼容性视图中显示所有网站&#34;组?
    • 是&#34;用户兼容性视图列表&#34;启用?
      • 找到了匹配?
    • 是&#34; MS兼容性视图列表&#34;启用?
      • 找到了匹配?
    • &#34;在兼容性视图中显示Intranet站点&#34;组?
      • 网页是否位于&#34; Intranet区域&#34;?

<强>参考