我正在尝试提取控制台的内容并将其作为弹出窗口使用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未定义)
感谢
答案 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")