我在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中启用条件编译后,请注意与语法模糊相似的注释。
答案 0 :(得分:4)
答案 1 :(得分:1)
我无法重现这一点,可能取决于您的环境。
看看这个:http://support.microsoft.com/kb/323487/en 也许它很有用