IE9破坏了Javascript的条件评论?

时间:2011-03-30 17:10:15

标签: internet-explorer-7 internet-explorer-6 internet-explorer-9

嘿嘿,在本月早些时候IE9发布之后对系统进行了一些修复。只是想知道是否有其他人遇到了与条件评论和IE9相同的问题,如果我的问题有更好的解决方法。

众所周知,条件注释可以作为IE浏览器的解决方法。 IE9似乎打破了这一点。我正在测试一个特定于IE9的脚本(特别是document.createElement(“< input name ='something'>”);在IE9中打破但这是一个不同的问题),我需要为IE 6& amp;所以我这样做了:

    <!--[if IE 6]>
    <script type="text/javascript">
        var ie6 = true;
    </script>
    <![endif]-->
    <!--[if IE 7]>
    <script type="text/javascript">
        var ie7 = true;
    </script>
    <![endif]-->

在IE9中,ie6和ie7都是真的。 WTF。

我的解决方法是将其更改为下面的条件注释反转逻辑,然后执行if(!ie9plus)。

    <!--[if gte IE 9]>
    <script type="text/javascript">
        var ie9plus = true;
    </script>
    <![endif]-->

有更好的解决方法吗?我们是否应该对IE开发团队大吼大叫,以打破网络调试的这一重要方面?

编辑:经过进一步测试,似乎是编码问题。不知何故,该文件编码错误,它打破了条件评论。当我将注释更改为IE9时,我也修复了文件编码。 IE9实际上确实正确支持条件注释。抱歉FUD。

1 个答案:

答案 0 :(得分:1)

IE blog表示他们仍在工作。但是,它们与渲染模式相关联,可以是79(前者在compat视图中)。

IE团队不鼓励使用条件评论,因为它们适合浏览器,而不是检测功能。但是,这可能主要是考虑Javascript。