1

console.log() メソッドを使用した後、警告ボックスは不要になり、いくつかのコードを準備したと誰かが私に言いました:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script>
function cool()
{console.log("Message");}</script>
</head>

<body onload="cool();">
</body>
</html>

ただし、アラート ボックスのように JavaScript の実行を停止するわけではありません。また、Firebug ウィンドウに「メッセージ」を書き込みます。

  • Firebug を持たないクライアント ブラウザではどのように動作しますか?

  • 同じ構文を使用するすべてのブラウザーで機能しますか?

  • Web 開発のみを目的として作成されたものですか。

4

3 に答える 3

2

Firebog を持たないクライアント ブラウザでの動作。

動作しません :-) 実際、FireBug は必須ではありません。たとえば、Google Chrome などの最新のブラウザーにはconsole.logメソッドが実装されており、出力はコンソールに送られます。このメソッドが定義されていないため、従来のブラウザーでは機能しません。

Web開発のみを目的として作成されましたか?

はい、主にデバッグ用です。

于 2012-05-12T10:03:21.620 に答える
2

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 デバッガーを使用して、オンラインで動画を見ているときにサイドバーに表示される迷惑な広告を削除しています。

于 2012-05-12T10:12:48.757 に答える
1

メッセージのロギングはまさにそれを行います。

Firebog を持たないクライアント ブラウザでの動作。

ブラウザが定義したJavaScriptコンソールに出力します。FireBug はこれをインターセプトしますが、必要ありません。

同じ構文のすべてのブラウザで動作しますか?

はい。

Web開発のみを目的として作成されましたか?

JavaScriptのデバッグ用。

于 2012-05-12T10:04:05.377 に答える