Javascript/Jquery注释导致IE中的错误

Nat*_*ndt 3 javascript jquery internet-explorer commenting

因此,这篇文章并不是一个"请帮助我修复它"的帖子,而是"为什么会改变它使它工作?".所以我写了一些javascript/jquery,它们在firefox和chrome中运行,但IE却出错了.

即使有来自stackoverflow的用户的有用帖子,我也无法弄明白.我最终偶然发现了答案(因为我似乎发现自己在编码方面做了很多工作).

我正在做一种有点严格的评论风格,由我的一位计算机科学教授教给我,其中一个函数会评论如下:

//@ describe function
//@ params: param1 - function, param2 - function
//@ etc....
Run Code Online (Sandbox Code Playgroud)

所以我愚蠢地把它扔进我的javascript只是为了发现IE真的根本不关心这个.当我删除@符号时,代码完美无缺.

所以我的问题是为什么这会导致IE中的错误?不应该跟随'//'评论无关紧要吗?

jfr*_*d00 8

它确实看起来像一些怪异的IE条件评论支持.看来,如果@是一个意见的第一个字符(是否以// @或/*@,然后IE查找@符号之后的条件注释指令.参见开始http://msdn.microsoft.com/en -us/library/8ka90k2e(v = vs.94).aspx用于一些例子.

AlienWebguy的建议应该有效,因为评论的第一个字符是*.你可能也可以在@符号前面加一个空格:

// @ describe function
// @ params: param1 - function, param2 - function
// @ etc....
Run Code Online (Sandbox Code Playgroud)


Ali*_*guy 6

您可能正在考虑docblock注释,您希望将其包含在块注释语法中:

/**
 * Function does this
 * @param <string> $str The string
 * @param <array> $arr The array
 * @return <bool> true if string is in array, false if not
*/
Run Code Online (Sandbox Code Playgroud)

我可以看到IE只是愚蠢.即使有一个解释为什么你//@没有工作,它可能是一个非常愚蠢的,并且可能性很大,我们只有一小部分人甚至可以在我们的IE版本上重新创建它.

IE是我所知道的唯一一个查看条件注释的浏览器,因此我可以看到它们具有与所有其他浏览器不同的注释解析器,这些浏览器会与其他正确的代码冲突.