javascript写控制台日志弹出

时间:2018-01-16 08:17:19

标签: javascript

我正在尝试提取控制台的内容并将其作为弹出窗口使用javascript发送。原因是我有很多信息写入控制台但我无法在特定环境中读取控制台。我试图按照这个问题的答案但出现错误:Can I extend the console object (for rerouting the logging) in javascript? 这是我的代码,然后是我得到的错误:

<p id="output"></p>

<script>
    console.log("asdf")

    (function() {
        var exLog = console.log;
        console.log = function(msg) {
            exLog.apply(this, arguments);
            alert(msg);
        }
    })()

</script>

这是错误

Uncaught TypeError: console.log(...) is not a function

感谢您的帮助

感谢您摆脱错误,正如我在问题中所述,我的目标是能够读取程序运行时发生的错误。这是我想要的一个例子:

<script>


    function func(){
        return y
    }

    (function() {
        var exLog = console.log;
        console.log = function(msg) {
            exLog.apply(this, arguments);
            alert(msg); 
        }
    })()


    func()


</script>

我希望这会出现弹出的错误 (错误是未捕获的ReferenceError:y未定义)

感谢

2 个答案:

答案 0 :(得分:1)

我可以重现你的错误。

但如果我在之后调用console.log ,则会按预期工作

<script>


    (function() {
        var exLog = console.log;
        console.log = function(msg) {
            exLog.apply(this, arguments);
            alert(msg);
        }
    })()

    console.log("asdf"); // calling after defining it

</script>

答案 1 :(得分:0)

您的代码按原样运行,只需更改您调用的地方console.log()(将其放在后面)

(function() {
    var exLog = console.log;
    console.log = function(msg) {
        exLog.apply(this, arguments);
        alert(msg);
    }
})();

console.log("hello")