我正在使用html5boilerplate构建脚本并在缩小脚本时(使用Google Closure Compiler)
我收到此错误
-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 Compiler?
由于
答案 0 :(得分:10)
从对象文字中删除多余的最后一个逗号:
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编译器所说,某些浏览器无法解析具有此类尾随逗号的文字。
答案 1 :(得分:4)
或启用EcmaScript 5模式。 Ecmascript 5确实标准化了尾随逗号行为,但IE8并不完全支持ES5(IE9也没有缺少严格模式)。