【问题标题】:Google Closure Compiler parse error: invalid property id for `css({float:'left'})`Google Closure Compiler 解析错误:`css({float:'left'})` 的属性 ID 无效
【发布时间】:2011-07-07 14:03:36
【问题描述】:

我正在使用 Google Closure Compiler 应用程序(命令行界面)。当我运行它时,我收到以下错误。

deploy/js/Home.js:40: ERROR - Parse error. invalid property id
    this.$images.wrapAll('<div id="slideInner"></div>').css({float:'left'});
                                                                   ^

1 error(s), 0 warning(s)

【问题讨论】:

  • 你试过把钥匙放在引号里吗? .css({'float':'left'}) ?
  • 请注意,我已经看到使用不带引号的关键字,因为这会导致 IE 中的错误,所以无论如何修复它是一件好事:)

标签: javascript google-closure-compiler google-closure


【解决方案1】:

我相信你需要这样做:

{'float':'left'}

这是因为floatlist of Java keywords reserved by JavaScript上,所以不能用作属性名。这在较新的 JS 引擎中可能不再是问题,但在较旧的 JS 引擎中可能会出现问题,这就是编译器产生错误的原因。

【讨论】:

  • Ecmascript 中是否真的保留了 Java 关键字 - 我找不到有效的参考?还是这是一个 JScript 问题?
【解决方案2】:

如果您已经有大量的 soy 文件,并且不想更改每个 soy 文件中的任何内容,则可以将标志传递给编译器:

--compiler_flags="--language_in=ECMASCRIPT5"

对我来说效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 2014-10-15
    • 2011-05-12
    相关资源
    最近更新 更多