将webkit控制台中的值从console.log放入变量中

时间:2013-03-17 18:48:57

标签: javascript google-chrome webkit web-inspector

如果chrome / safari webkit检查器中有一个输出,其中包含打印出来的对象,例如:

enter image description here

只有更复杂的嵌套对象(这就是复制/粘贴不会这样做的原因)

有没有办法把它放在一个变量中进一步检查并在控制台上打印后进行处理(通过console.log打印),只是在它已经在控制台中之后?

3 个答案:

答案 0 :(得分:6)

$_将为您提供控制台的最后输出。因此,在控制台中,您可以分配给变量。

enter image description here

请注意,您只能在控制台中执行此操作,而不能使用自己的代码执行此操作。

答案 1 :(得分:3)

这是一种在自定义日志函数中无需包装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'],因为您刚刚记录了它。

答案 2 :(得分:1)

如果您希望获得最后的输出do as Mohsen suggests

如果你想获得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"