コンテンツへスキップ

IEでwindow.console.log()を使う時は要注意

2012年5月15日

javascriptで手軽にprintデバッグ出来るconsole.log()ですが、
野放図にしていると、IEで正しく動いてくれないので注意が必要です。

気ままに以下のようなコードをIE8,IE9で通すと
alert()の内容は表示されません。

window.console.log('hogehoge');
alert('hugahuga');

IE8,IE9ではconsoleAPIが開発者ツールを起動しないと有効にはならないようです。
その為、開発者ツールを起動さえすれば上記コードでもalert()の内容は表示されます。

しかし、開発者ツールを有効にしてブラウジングしているエンドユーザ等ほぼいないでしょう。
不要であればwindow.console.log()はコメントアウトないし、コード上からは削除する。

どうしてもwindow.console.log()を残しておきたい場合は以下のようにすると、
解決するようです。

   var alertFallback = true;
   if (typeof console === "undefined" || typeof console.log === "undefined") {
     console = {};
     if (alertFallback) {
         console.log = function(msg) {
              alert(msg);
         };
     } else {
         console.log = function() {};
     }
   }

stackoverflow: What happened to console.log in IE8?

From → tips

コメントする

コメントを残す