IE8のスクリプト実行を停止しないconsole.log()

Pocket

IE9を含む多くのブラウザで利用できるconsole.log()。コンソールに情報を出力するためのメソッドで、JavaScriptプログラム開発には欠かせません。しかし、consoleオブジェクトおよびconsole.log()をはじめとするメソッドは、バージョン8以前のIEは対応していないばかりか、出てきたとたんにスクリプトの実行が止まってしまうため、動作確認が非常に面倒です。古いIEでもconsole.log()によってスクリプトの実行が止まらないようにする方法はないものでしょうか。

バージョン8以前のIEでは、JavaScriptで書かれたスクリプト内にconsole.log()やその他のメソッドが出てくると、そこで実行が停止します。[!]警告アイコンが表示され、それをダブルクリックすると次のようなダイアログが出てきます。

スクリプトの実行を停止しないようにする方法はいくつかありますが、ここでは、consoleが使用できないブラウザ(IE8以前)のときは、なにもしないconsoleオブジェクトを生成して、スクリプトの実行を停止しないようにする方法を紹介します。
JSファイルを作成して、次のようなスクリプトを書きます。サイトの適当な場所に保存しておきます。
ここでは、script/ディレクトリにfakeConsole.jsという名前で保存することにします。
[sourcecode language=”javascript”]
try {
if(!window.console) {
var FakeConsole = function(){};
FakeConsole.prototype = {
log: function(){}
};
var console = new FakeConsole();
}
} catch(err) {
}
[/sourcecode]

HTMLファイルの<head>要素内には次のように記述して、IE8以下のIEだけ、このスクリプト(fakeConsole.js)をロードするようにします。パスの部分は適宜書き換えてください。

[sourcecode language=”javascript”]
<!–[if lt IE 9]>
<script src="scripts/fakeConsole.js"></script>
<![endif]–>
[/sourcecode]

これで完了!簡単ですね。何も意識することなくconsole.log()が使え、ソースコードを汚しません。

Pocket

狩野祐東

Web/アプリケーションUIデザイナー、エンジニア。執筆家。 アメリカ・サンフランシスコに留学、UIデザイン理論を学ぶ。帰国後会社勤務を経て現在フリーランス。Webサイトやアプリケーションのインターフェースデザイン、インタラクティブコンテンツの開発を数多く手がける。各種セミナーや研修講師としても活動中。早稲田大学卒。おもな著書に『確かな力が身につくJavaScript「超」入門』『スラスラわかるCSSデザインのきほん』『作りながら学ぶjQueryデザインの教科書』『スラスラわかるHTML&CSSのきほん』ほか多数。仕事のサイトはwww.solidpanda.com

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です