IE6/7にはデフォルトでコンソールがありません。
Firefoxは実際にはFirebugというプラグインによって提供されています。 FirebugをインストールせずにFirefoxのコピーを使用すると、console
をIEと同じように呼び出す際にエラーが発生します。
IE8/9 doにはコンソールがあります。
ChromeとSafariにはコンソールオブジェクトが組み込まれていますが、FirebugやIE8とまったく同じ方法で動作するとは限りません。
デバッグウィンドウが開いていない限り、すべてのブラウザでコンソールオブジェクトが作成されないことがあります。つまり、console.log
呼び出しのコードは、のいずれかのブラウザで失敗する可能性があります。
console.log()
を呼び出すと、コンソールのないブラウザがクラッシュするのを防ぐために、例ではダミーのconsole
オブジェクトが存在しない場合は、本質的に作成しています。しかし、コードが実行される前にconsole.log()
に電話しているので、コンソールのないブラウザはその行でクラッシュします。したがって、console.log("doc ready");
行を移動して、console
が存在するかどうかを検出するビットの後に来るようにしてください。
IEのためにコンソールが存在するようにするには、Firebug LiteというFirebugのバージョンがあります。これはどのブラウザでも実行できます。これを実行すると、console
オブジェクトが作成されます。
ただし、ページがロードされた後でしか実行できないため、ドキュメント準備機能でコンソールメッセージを表示することはできません。さらに、コンソールオブジェクトが既に存在する場合はコンソールオブジェクトの作成に失敗することがあるので、ダミーのコンソールオブジェクトを作成する準備ができているコードによって、Firebug Liteが正常に動作しなくなる可能性があります。
最後に、コンソールを使用してデバッグするのは素晴らしいですが、後でデバッグ目的でのみ使用する予定がある場合でも、ライブコードをconsole.log
に送信しないようにしてください。既に見てきたように、コンソールオブジェクトを持たないブラウザではコードの実行を停止させる可能性があります。また、ライブユーザーには問題が発生することに注意してください。 :コードを出荷する前に、コンソールへのすべての呼び出しを常に確実に削除することをお勧めします。
コンソールChromeでも動作します – darioo
間違っていると、コンソールのFirebug LiteをIE7以下にインストールする必要があります。 IE8にはコンソールがありますが、Firebugなどのロギング方法は堅牢ではありませんが、そこにあります。 – epascarello