2009-01-31 53 views
7

使用的YUICompressor我從我的javascript代碼以下錯誤:的Javascript的YUICompressor錯誤

 
    [ERROR] 270:201:missing name after . operator 
    [ERROR] 292:6:missing ; before statement 

這裏是在以下幾行JavaScript代碼:

270線:

new _ow.getScript(_ow.wwwurl+'/widget/save?title='+encodeURIComponent(this.obj.title.value)+'&url='+encodeURIComponent(this.obj.url.value)+'&tags='+this.obj.tags.value+'&private='+this.obj.private.checked+'&c='+this.obj.notes.value+'&service='+services+'&token='+(_ow.token ? encodeURIComponent(_ow.token): ''), function(data) { 

292線:

}); 

我找不出什麼問題,因爲這個Javascript代碼在所有瀏覽器上都能正常工作。


編輯:我分裂多行線,並計算出由該代碼生成的「失蹤名後運營商。」:

this.obj.private.checked 

私人的關鍵字使YUI壓縮機變得瘋狂?

回答

0

只要把它分解成多行,你就可以讓自己的生活變得更輕鬆。你反正壓縮它,所以它不喜歡它會做出最終的大小不同...

3

首先,我會重新格式化代碼,使其更具可讀性:

new _ow.getScript(_ow.wwwurl 
    + '/widget/save?title=' 
    + encodeURIComponent(this.obj.title.value) 
    + '&url=' 
    + encodeURIComponent(this.obj.url.value) 
    + '&tags=' 
    + this.obj.tags.value 
    + '&private=' 
    + this.obj.private.checked 
    + '&c=' 
    + this.obj.notes.value 
    + '&service=' 
    + services 
    + '&token=' 
    + (_ow.token 
     ? encodeURIComponent(_ow.token) 
     : ''), 
    function(data) { 
    }); 

然後,壓縮機報告的生產線號應該可以幫助您深入瞭解問題所在。

0

Remeber使用選項--type JS前。

yuicompressor --type js -o comressed.js filetocompress.js 
2

您可以下載並安裝Apache Ant的,下載銳源,編輯源代碼(在src文件夾,在組織和COM子文件夾),以消除對關鍵字阻止您進度的所有引用(它去相當快,我編輯了大約3到4個文件,我認爲必須運行兩次,因爲第一次有一個引用錯誤,但它只是刪除了另一行引用關鍵字),一旦螞蟻編譯成功,你有一個全新的.jar,你可以用它來編譯你有問題的js。用yuicompressor2-4.7和「import」關鍵字(在mozilla擴展代碼中使用相當廣泛)做到了這一點