16

重複の可能性:
Internet Explorer、Closure Compiler、末尾のカンマ

Closure Compilerを使用して JavaScript コードを圧縮しようとしましたが、コードのコンパイルで次の 2 つのエラーが生成されました。

JSC_TRAILING_COMMA: 解析エラー。IE8 (およびそれ以前) は、配列およびオブジェクト リテラルの末尾のコンマを正しく解析しません。新しいバージョンの JS をターゲットにしている場合は、適切な language_in オプションを設定してください。379 行目の文字 0 fontFamily : jqTextareaDiv.css("font-family").replace(/["']{1}/gi,""),

JSC_TRAILING_COMMA: 解析エラー。IE8 (およびそれ以前) は、配列およびオブジェクト リテラルの末尾のコンマを正しく解析しません。新しいバージョンの JS をターゲットにしている場合は、適切な language_in オプションを設定してください。932 行目の文字 0 fontFamily : jqDiv.css("font-family"),

これらの 2 つのエラーは、次のコードを参照しているようです。

var jqTextareaDiv = obj.target.parent().parent(),
                            style = {       // the current, relevant style rules for the DIV nesting the textarea
                                fontFamily     : jqTextareaDiv.css("font-family").replace(/["']{1}/gi,""),
                                fontSize       : jqTextareaDiv.css("font-size"),
                                fontStyle      : jqTextareaDiv.css("font-style"),
                                fontWeight     : jqTextareaDiv.css("font-weight"),
                                textDecoration : jqTextareaDiv.css("text-decoration"),
                                textAlign      : jqTextareaDiv.css("text-align"),
                                color          : jqTextareaDiv.css("color"),
                            },
                            jqToolbox = $('#text-edit-toolbox'),
                            jqIndicators = {
                                fontFamily                : $('#font-family-indicator'),
                                fontSize                  : $('#font-size-indicator'),
                                fontStyle                 : $('#font-format-indicators .font-style'),
                                fontWeight                : $('#font-format-indicators .font-weight'),
                                textDecorationUnderline   : $('#font-format-indicators .underline'),
                                textDecorationLineThrough : $('#font-format-indicators .line-through'),
                                textAlignLeft             : $('#text-alignment-indicators .align-left'),
                                textAlignCenter           : $('#text-alignment-indicators .align-center'),
                                textAlignRight            : $('#text-alignment-indicators .align-right'),
                                textAlignJustify          : $('#text-alignment-indicators .align-justify')
                            };

この場合、正確にはどれが末尾のコンマで、コードを壊さずに削除するにはどうすればよいですか?

4

3 に答える 3

32

末尾のコンマは、配列またはオブジェクト リテラルの最後の要素に続くコンマです。このように:

['a', 'b', 'c',] // with trailing comma
['a', 'b', 'c']  // without trailing comma

この場合、末尾のカンマはオブジェクト リテラルの最後の要素の後に続きます。

color          : jqTextareaDiv.css("color"),

削除すると、予期した動作が発生します。そこにあると、IE <9は気に入らないでしょう。

于 2012-08-22T15:24:34.640 に答える
3

これは末尾のコンマです:

color          : jqTextareaDiv.css("color"), <<--
于 2012-08-22T15:24:27.180 に答える
2

の末尾にコンマがありcolor : jqTextareaDiv.css("color"),ます。それが最初の警告になります。2 番目の警告は、おそらくコード内の別の場所にある同様の定義です。

于 2012-08-22T15:24:19.833 に答える