IE7 など、いくつかのコンソール メソッドが定義されていないブラウザがあります。console.debug、console.info、および IE7 やその他のブラウザーでは利用できない可能性のあるその他のメソッドを頻繁に使用する場合は、ページで他の JavaScript を実行する前にこのコードを貼り付けることで、その状態を処理できます。
// override loggers to avoid throwing errors
if(window.console == null || window.console == undefined || !window.console) {
console = { log: function() {}, info: function() {}, warn: function() {}, error: function() {}, trace: function() {}, debug: function() {} };
var fbscript = document.createElement("script");
fbscript.src = "https://getfirebug.com/firebug-lite-beta.js";
fbscript.setAttribute("type","text/javascript");
document.getElementsByTagName("head")[0].appendChild(fbscript);
} else if(!console.debug) {
console.debug = function(text) { if(console.log) console.log("D: "+text); };
}
これは最初に、window.console が null または未定義かどうかを確認します。そうであれば、console、console.log、console.info などを空の関数として定義します。これにより、それらをサポートしていないブラウザーでエラーが発生するのを防ぎ、コードにバグやその他の問題がある場合に、非常に役立つブレッドクラムを不必要に削除することを防ぎます。
これが行うもう 1 つのことは、コンソールが見つからない場合に Firebug Lite を入力することです。これは、ネイティブ デバッガーを持たないブラウザーに最適です。
アラートに対するコンソール ログ ステートメントの利点は、ログ ステートメントがコードの実行を停止しないことです。機能をテストしたり、複数のイベントが同時に発生するコードをデバッグしたりする場合、コードにアラートがあると、アラートをデプロイして削除するまで発見できない未知のバグが隠れる可能性があります。コードが本番環境に到達するまで発見されません。
聴衆に関する限り、Firebug や Chrome Debugger が何であるかを知っている非技術者はあまり多くありません。したがって、Web 開発者が実際にこれらの機能の意図されたターゲットであった可能性が高いようです。他の機能で使用できないと言っているわけではありません。たとえば、私は Chrome デバッガーを使用して、オンラインで動画を見ているときにサイドバーに表示される迷惑な広告を削除しています。