IE では配列の最後に , を付けてはいけない

(2819d) 更新

公開メモ

プログラミング/JavaScript/IE では配列の最後に , を付けてはいけない

このサイトでは shjs というライブラリを使ってソースコードのシンタックスハイライトをしています。 pukiwiki 用のプラグインは ソフトウェア/pukiwiki/texthighlight.inc.php です。

shjs ライブラリは JavaScript で書かれた言語定義ファイルを追加してやることで、 標準ではサポートされない言語にも比較的簡単に対応することができるため、 本サイトでは verilog や xilinx の xcf ファイルなどもカラー表示できるようになっています。

ところが、あるときから IE でこの機能が動作していませんでした。 Firefox や Chrome では問題なかったので気づきませんでした。

現象としては、verilog 言語のソースが貼られたページでのみ、 左下に黄色いびっくりマークが出て、「'0' はNULLまたはオブジェクトではありません」となります。

検索してみると、以下のサイトで書かれているのと同じ原因でした。

http://parktown.seesaa.net/article/141926616.html

以下のサイトでは同じIEでも古い方は最後のカンマを普通通りに解釈していたのに、 途中で独自仕様の側に振れたというようなことが書かれています。

http://homepage3.nifty.com/aya_js/js3/js313.htm

JavaScript の言語定義でどうなっているのか調べきれなかったのですが、 他のスクリプト言語や JSON との整合性を考えると 配列の最後のカンマのみの項は無視してくれた方が便利なのに、 泣かせてくれます。IE のは JavaScript じゃなくて JScript だということなのかもしれませんが。

それとも、.js ファイルを IE に標準 JavaScript (?) として解釈させる方法とか あるんでしょうか。

コメント





Counter: 6298 (from 2010/06/03), today: 1, yesterday: 2