我在 IE 7、6.5(也许其他?)中遇到了一个错误/未记录的功能。这不会影响 Opera (10.5x) Firefox (3.5.x) 或任何其他浏览器(这是我迄今为止测试过的所有浏览器)。这似乎不是 Javascript 的记录能力。
通过包含由双斜杠表示的注释,并紧跟双符号 (//@@
),整个 .js
文件变得无用。我检查了几种变体,这是我发现的(其中未加载 fail=JS,已加载 pass=JS):
- 失败:
//@@
- 失败:
//@ @
- 失败:
//@@@
- 任何数量的@似乎都没有什么不同 - 失败:
//@@ text
- 以下任何内容似乎都没有帮助 - 失败:
//@hello@
- @ 之间的任何内容似乎都没有帮助 - 密码:
// @@
- 密码:
// @ @
- 第一个 @ 之前的空格似乎可以防止 - 密码:
//hello @@
- 第一个@ 之前的任何内容似乎都在阻止 - 密码:
/*@@*/
- 似乎只适用于//
评论风格
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/