我遇到了一个错误/未公开的功能在IE 7,6.5(也许别人?)。这不会影响Opera(10.5x)Firefox(3.5.x)或其他浏览器(这是我迄今为止测试的所有内容)。它似乎不是JavaScript的文档化的能力。多个@ JS评论错误在IE浏览器
通过在双符号(//@@
)中包含注释以双斜线表示的注释,整个.js
文件变得无用。我检查了几个变化和这里就是我发现(其中失效= JS没有加载,通过= JS加载):
- 失败:
//@@
- 失败:
//@ @
- 失败:
//@@@
- 似乎任何数量@不会有所作为 - 失败:
//@@ text
- 以下的任何内容似乎并没有帮助 - 失败:
//@[email protected]
- @之间的任何内容似乎并没有帮助 个
- 通:
// @@
- 通:
// @ @
- 第一@前面空间似乎防止 - 通:
//hello @@
- 第一@前面的任何内容似乎防止 - 通:
/*@@*/
- 似乎只适用于//
注释风格
IE 7 - 只是忽略该文件,当试图引用该文件的内容时,您会收到“<function/object> is undefined
”行中的错误。 IE6.5有正当理由报告“Invalid character
”,这显着提高了你发现问题的能力!
等等问题:有谁知道为什么会发生这种情况,发生了什么?
你可以使用它(插入一个空格,使用其他评论风格等),但值得注意的问题在那里,因为调试可能会很费时间。
UPDATE: 如何重现:
来源: 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 /歌剧:警告:您好!页面:世界
可能的结论:在IE中打开条件编译之后,请小心使用与语法非常相似的注释。
嘛架法有根本原因,它看起来并不像有一个解决方案(短期不使用与条件编译语句库和自己避免他们是有用的,或者在标志和评论时非常小心)。它看起来像一个错误,但也没有找到/ * cc_off * /命令(至少它没有记录/不能在我必须测试的IE版本中工作) – Rudu 2010-10-14 17:47:21