使用YUICompressor我的javascript代码出现以下错误:
[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代码适用于所有浏览器。
编辑:我将这行划分为多行,并发现此代码生成了“.counter”之后的“缺少名称”:
this.obj.private.checked
私有是一个让YUI压缩器疯狂的关键字吗?
答案 0 :(得分:13)
答案 1 :(得分: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) {
});
然后,压缩器报告的行#应该可以帮助您深入了解问题所在。
答案 2 :(得分:2)
请记住使用选项--type js exp>
yuicompressor --type js -o comressed.js filetocompress.js
答案 3 :(得分:2)
你可以下载并安装apache ant,下载yui源代码,编辑源代码(在src文件夹中,在org和com子文件夹中)删除对阻止你进度的关键字的所有引用(它进展得非常快,我我认为编辑了大约3到4个文件,因为第一次得到引用错误,所以必须运行ant两次,但只需删除引用该关键字的另一行)并且一旦ant编译成功,你就会有一个全新的.jar和你可以用它来编译你有问题的js。使用yuicompressor2-4.7和“import”关键字(在mozilla扩展代码中广泛使用)来做到这一点
答案 4 :(得分:0)
通过将其分解为多行,您可以让自己的生活变得更轻松。无论如何你正在压缩它,所以它不会对最终的尺寸产生影响......