Javascript 将webkit控制台中console.log的值放入变量中
如果chrome/safari webkit inspector中有一个输出,其中包含一个打印输出的对象,例如: 嵌套对象的加载要复杂得多(这就是复制/粘贴不起作用的原因)Javascript 将webkit控制台中console.log的值放入变量中,javascript,google-chrome,webkit,web-inspector,Javascript,Google Chrome,Webkit,Web Inspector,如果chrome/safari webkit inspector中有一个输出,其中包含一个打印输出的对象,例如: 嵌套对象的加载要复杂得多(这就是复制/粘贴不起作用的原因) 是否有办法将其放入变量中,以便在控制台上打印后(通过console.log打印)进一步检查并处理它,仅在它已经在控制台中之后?$\uuuu将为您提供控制台的最后输出。所以在控制台中,您可以将其分配给变量 请注意,您只能在控制台中执行此操作,而不能从您自己的代码中执行此操作。如果您希望获得最后的输出 如果您试图获取cons
是否有办法将其放入变量中,以便在控制台上打印后(通过
console.log打印)进一步检查并处理它,仅在它已经在控制台中之后?$\uuuu
将为您提供控制台的最后输出。所以在控制台中,您可以将其分配给变量
请注意,您只能在控制台中执行此操作,而不能从您自己的代码中执行此操作。如果您希望获得最后的输出
如果您试图获取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"
下面是一种不用在自定义日志函数中包装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']
,因为您刚刚记录了它。我甚至不知道!这是一个非常棒的建议!我从来不知道这是可能的。我想知道您是否也可以监听控制台事件?最好使用oldLog.apply(这是参数)
来传递所有参数,而不是第一个参数。@Mohsen很好,我更新了代码,使用apply
而不是call
。