IE浏览器,使用Closure Compiler和尾随逗号(Internet Explorer, C

2019-06-26 19:01发布

我使用html5boilerplate构建脚本和涅槃的脚本时(使用谷歌关闭编译)

我得到这个错误

-js.all.minify:
     [echo] Minifying scripts
     [copy] Copying 3 files to /Users/Username/Desktop/Web/intermediate/js
    [apply] /Users/Juan/Desktop/Web/js/plugins.js:117: ERROR - Parse error. Internet Explorer has a non-standard intepretation of trailing commas. Arrays will have the wrong length and objects will not parse at all.
    [apply]                 }, { duration: 727 })
    [apply] 

             ^

但是,代码没有在IE 8中,如果运行未编译工作。

这是代码

anim1.animate({
                    'left': '+=32px',
                    'filter': 'alpha(opacity=100)',
                    '-moz-opacity': '1',
                    '-khtml-opacity': '1',
                    'opacity': '1',
                }, { duration: 727 })

我怎样才能使此代码通Compulsure编译器?

谢谢

Answer 1:

从对象文本中删除多余的最后一个逗号:

anim1.animate({
    'left': '+=32px',
    'filter': 'alpha(opacity=100)',
    '-moz-opacity': '1',
    '-khtml-opacity': '1',
    'opacity': '1'      // <-- No comma here.
}, { duration: 727 });  // <-- I'd also suggest a semicolon there.

由于Closure编译器说,这样的尾随逗号文字不能被某些浏览器解析。



Answer 2:

或启用的EcmaScript 5模式。 EcmaScript的5不规范后面的逗号行为,但IE8不能完全支持它ES5(同样没有IE9一个缺少严格的模式)。



文章来源: Internet Explorer, Closure Compiler and Trailing Commas