2011-01-11 32 views
3

由于我升级到jQuery 1.4.4,当我在Firefox 3.6.13中运行我的单元测试时,我得到了几条新的警告消息。下面是一个典型之一:如何追踪这些Firefox警告消息?

Warning: Unexpected token in attribute selector: '!'. 
Source File: http://localhost/unitTests/devunitTests.html 
Line: 0 

还是更加有用:

Warning: Selector expected. 
Source File: http://localhost/unitTests/ui/editors/iframe2.html?test=15 
Line: 0 

的网页渲染很好,和我所有的JavaScript代码,似乎太没事的运行,所以我舍不得花可能会有大量的时间在我的代码中剔除以跟踪这些消息。然而,任何人都可以提出什么引发了警告?

+0

我现在已经转移到Firefox 4并且这些新的警告消息不再存在。 – 2011-04-27 13:09:56

回答

0

基本上,Firefox对JavaScript有严格的规则,并且会在不影响运行的JavaScript代码的琐碎事务上返回错误。关闭我的头顶定义变量而不使用var将在错误控制台中创建某种警告,尽管这样做完全没问题。这些编码实践对于缩小javascript和使JavaScript整体更精简并且运行速度更快是正常的 - 您会注意到大部分这些错误实际上都发生在jQuery本身中。

你可以阅读更多关于Firefox的JavaScript的严格这里的错误:http://www.howtocreate.co.uk/strictJSFirefox.html

有可能关闭严格的警告,但可能当你正在开发不可取的。

TL; DR:不要担心,如果一切正常,FF太过挑剔。

+0

看起来你对他们在jQuery中是对的,所以我只希望他们在未来的版本中离开。 – 2011-01-12 11:36:41

2

你可能有这样的事情:

$(selectorVariable) 

...和其他的东西沿着这些线路:

$("something[" + attributeNameVariable + "!=somethingElse]") 
在这两种情况下

的变量是空的会出错,因为"""selector[!=value]"不是有效的选择器。看看你在选择器中使用变量,并添加if()检查,以便在这些情况下选择器无效(有时变量中的空字符串很好,取决于它的使用位置)它们不会运行。