2009-01-31 57 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扩展代码中使用相当广泛)做到了这一点