2009-01-31 11 views
7

Utilizzando YUICompressor ottengo il seguente errore dal mio codice javascript:Javascript YUICompressor errore

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

Ecco il codice javascript ai seguenti linee:

Linea 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) { 

Linea 292 :

}); 

Non riesco a capire quale sia il problema dato che questo codice Javascript funziona bene su tutti i browser.


EDIT: ho diviso la linea in più righe e capito che il "nome mancante dopo l'operatore." Viene generato da questo codice:

this.obj.private.checked 

È privato una parola chiave che fa impazzire il compressore YUI?

risposta

0

Potresti rendere la tua vita molto più semplice solo scomporla su più linee. Si sta comprimendo comunque, quindi non è come sta andando a fare la differenza per la dimensione finale ...

3

In primo luogo, mi piacerebbe riformattare il codice per renderlo più leggibile:

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) { 
    }); 

Poi , la linea # riportata dal compressore dovrebbe aiutarti a capire quale sia il problema.

0

Ricordatevi di utilizzare l'opzione --type js es.

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

è possibile scaricare e installare formica apache, scaricare il sorgente Yui, modificare il codice sorgente (nella cartella src, nel org e le sottocartelle com) per rimuovere tutti i riferimenti alla parola bloccando i progressi (si va abbastanza veloce, ho curato circa 3 o 4 file, penso, ho dovuto eseguire due volte la formica perché la prima volta ha avuto un errore di riferimento, ma è bastato eliminare un'altra riga che si riferiva alla parola chiave) e una volta che la formica è stata compilata correttamente .jar e puoi usarlo per compilare il tuo js problematico. ha fatto questo con yuicompressor2-4.7 e la parola chiave "import" (usata abbastanza estesamente nel codice di estensione di mozilla)

Problemi correlati