所以这篇文章并不是一个“请帮助我修复它”的帖子,而是“为什么会改变它使它工作?”。所以我写了一些在firefox和chrome中运行的javascript / jquery,但IE引发了错误。
即使有来自stackoverflow的用户的有用帖子,我也无法理解。我最终偶然发现了答案(因为我似乎发现自己在编码方面做了很多工作)。
我正在做一种严谨的评论风格,我的一位计算机科学教授告诉我,其中一个函数可以评论如下:
//@ describe function
//@ params: param1 - function, param2 - function
//@ etc....
所以我愚蠢地把它扔进我的javascript只是为了发现IE真的根本不关心这个。当我删除@符号时,代码完美无缺。
所以我的问题是为什么这会导致IE出错?不应该跟随'//'评论无关紧要吗?
答案 0 :(得分:8)
它确实看起来像一些怪异的IE条件评论支持。看来如果@是注释的第一个字符(无论是以// @还是/ * @开头,那么IE会在@符号后面查找条件注释指令。有关示例,请参阅http://msdn.microsoft.com/en-us/library/8ka90k2e(v=vs.94).aspx。
AlienWebguy的建议应该有效,因为评论的第一个字符是*。你可能也可以在@符号之前放一个空格:
// @ describe function
// @ params: param1 - function, param2 - function
// @ etc....
答案 1 :(得分: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
*/
我可以看到IE只是愚蠢。即使有一个解释为什么你的//@
不起作用,它可能是一个非常愚蠢的,并且很可能只有一小部分我们甚至能够在我们的IE的版本。
IE是我所知的唯一一个查看条件注释的浏览器,因此我可以看到它们的注释解析器与所有其他浏览器不同,这些浏览器会与其他正确的代码冲突。