7

使用 YUICompressor 我从我的 javascript 代码中得到以下错误:

    [错误] 270:201: 后缺少名称。操作员
    [错误] 292:6: 缺失;声明之前

这是以下几行的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 代码在所有浏览器上都可以正常工作。


编辑:我将行拆分为多行,并发现“. operator 之后缺少的名称”是由以下代码生成的:

this.obj.private.checked

私人是让 YUI 压缩器发疯的关键字吗?

4

5 回答 5

13

private是保留字。

于 2009-01-31T23:10:18.607 回答
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) {
    });

然后,压缩机报告的 # 行应该可以帮助您深入了解问题所在。

于 2009-01-31T21:05:42.053 回答
2

请记住使用选项 --type js ex。

yuicompressor --type js -o comressed.js filetocompress.js
于 2010-02-25T17:48:26.143 回答
2

您可以下载并安装 apache ant,下载 yui 源代码,编辑源代码(在 src 文件夹中,在 org 和 com 子文件夹中)以删除对阻碍您进度的关键字的所有引用(它运行得很快,我编辑了大约 3我认为有 4 个文件,必须运行 ant 两次,因为第一次出现引用错误,但只需要删除引用关键字的另一行),一旦 ant 编译成功,你就有一个全新的 .jar,你可以使用它编译有问题的 js。使用 yuicompressor2-4.7 和 "import" 关键字(在 mozilla 扩展代码中广泛使用)

于 2012-02-17T10:24:13.780 回答
0

只需将其拆分为多行,您就可以使自己的生活更轻松。无论如何你都在压缩它,所以它不会对最终大小产生影响......

于 2009-01-31T21:02:28.987 回答