Javascript YUICompressor错误

时间:2009-01-31 20:54:58

标签: javascript yui yui-compressor

使用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压缩器疯狂的关键字吗?

5 个答案:

答案 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)

通过将其分解为多行,您可以让自己的生活变得更轻松。无论如何你正在压缩它,所以它不会对最终的尺寸产生影响......