2010-04-16 82 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