ux00ffの日記

2012-03-26

IE9では開発者ツールを起動しないと window.console は undefined だった


という指摘を受けた。
確認してみると、確かにテスト用に運用しているアプリケーションで、IEだけがうまく動作しない。
デバッグしようと思い、開発者ツールを起動すると、うまく動く。
何故…。

と長い間ハマッていました。

昼休みに同僚とこの話題をもちかけて少し雑談している時に、ふいに「開発者ツール開いたときとそうでない時でJavascriptの実行モードが違うとか、何か環境的な違いが発生してるんじゃないのか実際」と閃いて解決。

数多くの Internet Explorer 9 オブジェクトを、括弧およびパラメーターなしでテストすると、機能が存在する場合にオブジェクトは true の値を返します。この場合、コンソールの clear() 機能をテストします。単にコンソール オブジェクトのテスト用に、一般的な確認だけをすることもできます。

if (window.console){
// Add console commands here.
}


だそうです。

あまりに凹んだので、超暫定的に

if (!window.console){
    window.console = {
        log : function(msg){
            // do nothing.
        }
    };
}

こんなのを仕込んでしまいました。

もちろん、リリース時には除去しなきゃなんですが、開発中はどうしてもログ出力でデータモデルの中覗いてしまう…。

kiikii 2012/07/20 15:48 たすかりましたー

ux00ffux00ff 2012/07/24 13:53 同じ問題絶対いろんな人がはまってますよね!
お役に立てて幸いですー。

kotakota 2012/12/21 19:33 アリガトウゴザイマス

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

リンク元