2012年4月20日金曜日

IE9で開発者ツールを使うとスクリプトが正しく動作する問題

開発者ツールを起動したIE9と他のブラウザでは正しく動作するスクリプトが,開発者ツールを使う前のIE9だと異常終了してしまうという問題に遭遇してしまいました. 原因がわかったのでメモしておきます.

IE9では,「window.console」の値が一度開発者ツールを起動した場合とそうでない場合とで異なるようです. 一度開発者ツールを起動した場合,「window.console」の値をassert関数で表示すると,「[object]」となります. 一方,一度も開発者ツールを起動していない場合,その値は「undefined」となります.

スクリプト内に「console.log("hogehoge");」のようなコードがあると, 一度も開発者ツールを起動していない状態では,「undefined」な値を持つconsoleに対して,logメソッドを呼び出してしまうことになります. そのためにスクリプトが異常終了してしまうようです.

この問題はなかなか手強かったです.とにかく解決してよかった.

参考資料
[1] IE9では開発者ツールを起動しないと window.console は undefined だった

0 件のコメント: