有没有一种方法可以使用Javascript读取console.log?
这个标题不言自明有没有一种方法可以使用Javascript读取console.log?,javascript,console.log,Javascript,Console.log,这个标题不言自明 有没有一种方法可以读取输出到控制台的任何内容。使用Javascript登录到您决定读取它的那一刻?您可以在它周围创建一个代理,例如: (function(win){ var ncon = win.console; var con = win.console = { backlog: [] }; for(var k in ncon) { if(typeof ncon[k] === 'function') {
有没有一种方法可以读取输出到控制台的任何内容。使用Javascript登录到您决定读取它的那一刻?您可以在它周围创建一个代理,例如:
(function(win){
var ncon = win.console;
var con = win.console = {
backlog: []
};
for(var k in ncon) {
if(typeof ncon[k] === 'function') {
con[k] = (function(fn) {
return function() {
con.backlog.push([new Date(), fn, arguments]);
ncon[fn].apply(ncon, arguments);
};
})(k);
}
}
})(window);
不标准,没有人可以使用monkey patch
console.log
来使用内部队列(也可以直接写入),或者查看特定于浏览器/扩展的支持(例如,任何Firebug挂钩?)。这可能有助于您朝着正确的方向前进@user2246674我认为你的评论足够好,可以作为一个答案。但是我必须足够快,在一些脚本开始使用它之前覆盖控制台,否则在我开始覆盖控制台之前,我将丢失该脚本记录的所有内容。另外,如果脚本使用“删除控制台”,我的覆盖将丢失,对吗?因此,我需要设置一个间隔来覆盖控制台,希望在这些间隔之间不会丢失日志,对吗?我认为您实际上无法循环使用console
@SproutCoder:delete console代码>不是常见的代码行。如果一个剧本能做到这一点,我会担心它还能做什么。我不会把你的时间浪费在休息上。至于“足够快”,只需将此作为页面上的第一个脚本加载,这样您就可以确保它是第一个。for(控制台中的var k)if(控制台的类型[k]=='function')console.log(k)
似乎至少在chrome中起作用。@OneOfOne:出于某种原因,它以前对我不起作用。这次工作:)