javascript - IE 中的多个@JS Comment bug

标签 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. 密码:/*@@*/ - 似乎只适用于 //评论风格

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 中打开条件编译后,请注意与语法隐约相似的注释。

最佳答案

关于javascript - IE 中的多个@JS Comment bug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3894079/

相关文章:

javascript - 触发 Internet Explorer 的更改事件

java - 为什么使用 "\u000d"执行注释可以工作,但使用 "\n"则不行

python - 如何在 python 注释中指定输入和输出数据类型?

javascript - React native key 在 for 循环中未正确更新?

javascript - ng-hide 不能与两个过滤器一起使用

javascript - jQuery sort 和 appendTo 在 Internet Explorer 和 Safari 中不起作用

javascript - 是否有一个 IE javascript 命令可以重新处理类定义?

Eclipse Jee 中的 Java 注释快捷方式很奇怪 2019 03

javascript - 如何在 html 中使用外部 Javascript 类?

javascript - 我如何将 Json 数据发布到我的状态 ReactJs 中