2010-04-16 83 views
0

有人可以请解释当我有一个jquery脚本,它运行良好,没有错误,然后压缩并上传它,然后返回错误?jQuery压缩导致错误

非常感谢。

编辑的唯一错误即时得到使用JSLint的是:

错误:

隐含全球:$ 3,25,27,28,31,32,34,35,36,38,45, 46,47,49,50,61,63,64,65,67,71,75,79,83,87,91,94,95,96,98,101,102,103,111,113,114,115,121,123,124,125,127,130,131,132,142,144,145,146,147,148,149,150,151,152,153,154,155,171,173,174,175,177,180,181,182,192,194,195,196,197,198,199,200,201,202,214,216,217,218,220,223,224,225,234,240,241,242,243,244,245,246,247,248,249,250,251,253,254,255,256,257,258,259,260,窗口7,警惕56,106,137,187,230,文件234

这是导致其在jQuery的即时猜测

+0

您可以调整jslint以禁用仅影响代码风格而不影响错误的各种检查。 访问未使用var声明的变量隐含为全局变量。您可以使用 /* global ... */comment指令指定外部全局变量。 – Ernelli 2010-04-16 13:23:52

回答

1

最有可能你缺少的语句终止;一些线(S),例如下面的代码将运行良好,即使我不指定:

$(....).click(function(){ 
    ..... 
}) <-- // no `;` char here 

甚至这样的:

alert('hello') <-- // no `;` char here 

但是当你压缩,并且你已经忘了某个地方,人物,您将收到错误。

请确保在脚本中不是这种情况,而不是任何可能的问题。

+0

我检查过(遇到这个问题之前)firefox抛出; '失踪)参数后' – 2010-04-16 08:00:45

+0

对不起,发了一个typeo''};' – 2010-04-16 08:03:16

+0

@Phil Jackson:那好消息是:) – Sarfraz 2010-04-16 08:04:08

1

可能是因为您的脚本中存在错误,脚本未压缩时不会导致任何问题。

我建议尝试在脚本上使用jslint来验证它是否正确。

+0

感谢很好的工具,是什么意思? 38:非转义' - '。 if(to.search(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*[[a-z0-9-]+([.[a-z0) -9 - ] +)*(\。[...' – 2010-04-16 08:24:17

0

JSLint的替代品是JavaScriptLint。可能值得在这方面进行检查。你在浏览器中遇到什么错误? Firefox的Firebug应该会给你更多的错误信息。

0

我不确定你用什么来压缩你的javascript,但我注意到从使用Google Closure compiler它不遵循“规则”本身。

鉴于此代码:

var t = true; 
if (t) { alert("it's true!"); } 

其给出的JSLint没有错误(除了“隐含全球:红色警戒2”)

如果我使用了“谁需要空白”设置压缩,这是结果

var t=true;if(t)alert("it's true!"); 

这当然是优化的,但现在给出了一个JSLint错误。

+0

我发现压缩器没有在压缩文件的末尾添加';',我现在只添加一个正常工作,感谢所有回复。 – 2010-04-16 13:28:34