【问题标题】:Is there a way to read the console.log using Javascript?有没有办法使用 Javascript 读取 console.log?
【发布时间】:2013-09-25 04:05:12
【问题描述】:

标题是不言自明的......

有没有办法使用 Javascript 读取任何输出到 console.log 的内容,直到您决定读取它?

【问题讨论】:

  • 不标准,不。可以使用猴子补丁console.log 使用内部队列(也可以直写) - 或者查看浏览器/扩展特定支持(例如任何 Firebug 挂钩?)。
  • 也许这可以帮助您朝着正确的方向前进? stackoverflow.com/questions/601363/…
  • @user2246674 我认为您的评论足以成为答案。

标签: javascript console.log


【解决方案1】:

你可以围绕它做一个代理,比如:

(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);

【讨论】:

  • 但是在某些脚本开始使用它之前,我必须足够快地覆盖控制台,否则我将丢失该脚本记录的任何内容,直到我开始覆盖控制台。此外,如果脚本使用“删除控制台;”我的覆盖将丢失,对吗?所以我需要设置一个间隔来继续覆盖控制台,希望在这些间隔之间不会丢失任何日志,对吧?
  • 我认为你实际上不能遍历console 的属性。
  • @SproutCoder: delete console; 不是常见的代码行。如果脚本做到了,我会担心它还在做什么。我不会在间隔上浪费你的时间。至于“足够快”,只需将其作为页面上的第一个脚本加载,这样您就可以确定它是第一个。
  • for(var k in console) if(typeof console[k] === 'function') console.log(k) 似乎至少在 chrome 中有效。
  • @OneOfOne:由于某种原因,它以前对我不起作用。这次工作了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-25
  • 2016-01-27
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多