以前は、JavaScript の IO サポートは非常に弱く、対応するテキスト ファイルに書き込むことができませんでした。さらに、例外オブジェクト Error は均一ではなく、詳細なスタックを出力できませんでした。例外オブジェクトのカスタマイズは、通常はそのメッセージ属性しか表示されないため、非常に不快な方法です。さらに、他のカスタム属性は最も遅い for...in ループを使用して調べる必要があります。現時点では、ブラウザのさまざまなプライベート実装に頼るしか方法はありません。たとえば、Firefox には console.log があります。以下は、コンソール オブジェクトのメソッドのリストです。firebug の詳細な使用方法については、この記事を参照してください。
機能 |
説明 |
log(obj[, obj, ...]) |
コンソールにメッセージを出力します。複数のパラメータを入力でき、出力はスペースで区切られます。
函数 |
说明 |
log(obj[, obj, ...]) |
向控制台输出一个信息。可以输入多个参数,输出将已空格分隔各参数输出。 第一参数可以包含格式化文本,例如: log(‘这里有%d个%s',count,apple); 字符串格式: %s:字符串。 %d, %i:数字。 %f: 浮点数。 %o -超链接对象。
|
debug(obj[, obj, ...]) |
向控制台输出一个信息,信息包含一个超链接链接到输出位置。 |
info(obj[, obj, ...]) |
向控制台输出一个带信息图标和背景颜色的信息,信息包含一个超链接链接到输出位置。 |
warn(obj[, obj, ...]) |
向控制台输出一个带警告图标和背景颜色的信息,信息包含一个超链接链接到输出位置。 |
error(obj[, obj, ...]) |
向控制台输出一个带错误图标和背景颜色的信息,信息包含一个超链接链接到输出位置。 |
assert(expression[, obj, ...]) |
测试一个表示是否为true,如果为false,提交一个例外信息到控制台。 |
dir(obj) |
列出对象的所有属性。 |
dirxml(node) |
列出HTML或XML Element的XML源树。 |
trace() |
输出堆栈的调用入口。 |
group(obj[, obj, ...]) |
将信息分组再输出到控制台。通过groupEnd()结束分组。 |
groupEnd() |
结束分组输出。 |
time(name) |
创建一个名称为name的计时器,计算代码的执行时间,调用timeEnd(name)停止计时器并输出执行时间。 |
timeEnd(name) |
停止名称为name的计时器并输出执行时间。 |
profile([title]) |
开始对脚本进行性能测试,title为测试标题。 |
profileEnd() |
结束性能测试。 |
count([title]) |
计算代码的执行次数。titile作为输出标题。 |
最初のパラメータには、フォーマットされたテキストを含めることができます。例: log(‘There are %d %s’, count, apple); 文字列形式:
|
デバッグ(obj[, obj, ...]) |
出力場所へのハイパーリンクを含むメッセージをコンソールに出力します。 |
情報(obj[, obj, ...]) |
メッセージ アイコンと背景色を使用してメッセージをコンソールに出力します。メッセージには、出力場所へのハイパーリンクが含まれます。 |
警告(obj[, obj, ...]) |
警告アイコンと背景色を含むメッセージをコンソールに出力します。メッセージには、出力場所へのハイパーリンクが含まれます。 |
エラー(obj[, obj, ...]) |
エラー アイコンと背景色を含むメッセージをコンソールに出力します。メッセージには、出力場所へのハイパーリンクが含まれます。 |
assert(expression[, obj, ...]) |
表現が true かどうかをテストし、false の場合は例外メッセージをコンソールに送信します。 |
ディレクトリ(obj) |
オブジェクトのすべてのプロパティをリストします。 |
dirxml(ノード) |
HTML または XML 要素の XML ソース ツリーをリストします。 |
トレース() |
出力スタックの呼び出しエントリ。 |
グループ(obj[, obj, ...]) |
情報をグループ化してコンソールに出力します。 groupEnd() を使用してグループを終了します。 |
グループエンド() |
グループ出力を終了します。 |
時間(名前) |
name という名前のタイマーを作成し、コードの実行時間を計算し、timeEnd(name) を呼び出してタイマーを停止し、実行時間を出力します。 |
終了時刻(名前) |
name という名前のタイマーを停止し、実行時間を出力します。 |
プロフィール([タイトル]) |
スクリプトのパフォーマンス テストを開始します。タイトルはテストのタイトルです。 |
profileEnd() |
パフォーマンステストを終了します。 |
カウント([タイトル]) |
コードの実行回数をカウントします。 title を出力タイトルとして指定します。 |
firebug については詳しく説明しません。IE8 にも console.log がありますが、これは F12 を押してデバッグ モードに入った場合にのみ有効になります。それ以外の場合は、エラーが報告されます。エラーを報告しないようにするには、通常は空のオブジェクトを実装して上書きする必要があります。
コードをコピー
コードは次のとおりです。
if (!window.console ){
window .console = {};
varmessages = ["log"、"debug"、"info"、"warn"、"error"、"assert"、"dir"、"dirxml"、
"group ", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"],
noop = function(){}
for (var i = 0 , method; method=methods[i ];)
window.console[method] = noop; } おそらく、opera9.5x 以降に追加のものがあります。ドラゴンフライイーストと呼ばれています。明らかに、firebug のさまざまなログ出力と比較することはできません。提供されるのは、opera.postError メソッドだけです。
コードをコピー
コードは次のとおりです。
if (window.opera && opera.postError ) { opera.postError(message); } Safari にも console.log があります。これは Web Inspector コンポーネントに基づいており、Firefox に似ていますが、フルーツ人間ではないので、Firebug ほど多くのメソッドはありません。新興ブラウザ Chrome の場合、拡張機能に Firebug がインストールされている Chrome バージョンを検索できるようになりました。