3

chrome/safari webkit インスペクタに、次のような出力オブジェクトを含む出力がある場合:

ここに画像の説明を入力

ネストされたオブジェクトが大量にある場合は、はるかに複雑になります(これが、コピー/貼り付けができない理由です)

これを変数に入れてさらに検査し、コンソールに出力された後に処理する方法はありますか (経由で出力されますconsole.log)、コンソールに既に表示された直後にのみですか?

4

3 に答える 3

6

$_コンソールの最後の出力が表示されます。したがって、コンソールで変数に割り当てることができます。

ここに画像の説明を入力

これはコンソールでのみ実行でき、独自のコードからは実行できないことに注意してください。

于 2013-03-17T18:55:57.657 に答える
4

カスタムログ関数でラップせずにそれを行う方法は次のとおりです。console.log

var justLogged;
var oldLog = console.log;

console.log = function () {
    oldLog.apply(console, arguments);
    justLogged = arguments;
};

console.log('test');

// if necessary, restore console.log to its original behavior when you're finished with it
console.log = oldLog;

の値は、記録したばかりなので にjustLoggedなります。['test']

于 2013-03-17T19:09:45.210 に答える
1

最後の出力を取得したい場合は、Mohsen の提案に従ってください。

の最後の出力を取得しようとしている場合console.log、最善の策はラッパー関数です。これにより、(1) やりたいことを実行できます (2) 本番環境では簡単に無効にできます。これは、古い IE で役に立ち、デバッグ メッセージを非表示にします。

var log = (function() {
    var lastOutput;
    var fn = function() {
        lastOutput = arguments[0];              // save the last argument
        console.log.apply(console, arguments);  // defer to console.log
    };
    fn.last = function() {
        return lastOutput;
    };
    return fn;
})();

log("abc123");
log.last();     // => "abc123"
于 2013-03-17T19:01:31.393 に答える