IE中的多个@ JS评论错误

时间:2010-10-08 20:29:53

标签: javascript internet-explorer comments

我在IE 7,6.5中遇到了错误/未记录的功能(也许是其他人?)。这不会影响Opera(10.5x)Firefox(3.5.x)或任何其他浏览器(这是我迄今为止测试的所有内容)。它似乎不是Javascript的记录能力。

通过包含用双斜杠表示的注释,并在符号(//@@)后面直接跟随双精度,整个.js文件变得无用。我已经检查了几个变体,这里是我发现的(其中fail = JS未加载,pass = JS已加载):

  1. 失败://@@
  2. 失败://@ @
  3. 失败://@@@ - 任何数量的@似乎没有什么区别
  4. 失败://@@ text - 以下任何内容似乎没有帮助
  5. 失败://@hello@ - @之间的任何内容似乎没有帮助
  6. 传递:// @@
  7. 传递:// @ @ - 第一个@之前的空格似乎阻止了
  8. 传递://hello @@ - 在@ @之前的任何内容似乎都会阻止
  9. 传递:/*@@*/ - 似乎只适用于//评论风格
  10. IE 7 - 只是忽略该文件,在尝试引用该文件的内容时,会出现“<function/object> is undefined”错误。 IE6.5非常适合报告“Invalid character”,这可以显着提高您查找问题的能力!

    所以问题:有谁知道为什么会发生这种情况以及发生了什么?
    您可以使用它(插入空格,使用其他注释样式等),但值得注意的是问题,因为调试可能非常耗时。

    更新 如何重现:

    来源: flaw.ie.html

    <html lang="en">
      <head>
        <title>Test</title>
        <script src="turnon.cc.js"></script>
        <script src="flaw.ie.js"></script>
      </head>
      <body>
        World
      </body>
    </html>
    

    来源: flaw.ie.js

    //@@
    alert('hello');
    

    来源: turnon.cc.js

    /*@cc_on
     @*/
    

    结果:
    IE:页面:世界
    FF / Opera:警报:您好!页:世界

    潜在结论:在IE中启用条件编译后,请注意与语法模糊相似的注释。

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

我无法重现这一点,可能取决于您的环境。

看看这个:http://support.microsoft.com/kb/323487/en 也许它很有用