Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在HTML页面中显示浏览器控制台_Javascript_Browser_Console.log - Fatal编程技术网

Javascript 在HTML页面中显示浏览器控制台

Javascript 在HTML页面中显示浏览器控制台,javascript,browser,console.log,Javascript,Browser,Console.log,编辑:我找到了Stack Overflow使用的代码: 我已经找到了一系列的答案,展示了如何将控制台输出到网页,但我正在尝试使其能够将消息也记录到控制台。具有讽刺意味的是,如果您在堆栈溢出上运行代码段,它们会执行我试图执行的操作 //这会导致堆栈溢出 var native=窗口; native.console={ 日志:函数消息{ $'ul.messages'。附加'Log:'+消息+; console.logmessage; }, 错误:functionmessage{ $'ul.messa

编辑:我找到了Stack Overflow使用的代码:

我已经找到了一系列的答案,展示了如何将控制台输出到网页,但我正在尝试使其能够将消息也记录到控制台。具有讽刺意味的是,如果您在堆栈溢出上运行代码段,它们会执行我试图执行的操作

//这会导致堆栈溢出 var native=窗口; native.console={ 日志:函数消息{ $'ul.messages'。附加'Log:'+消息+; console.logmessage; }, 错误:functionmessage{ $'ul.messages'.append'错误:'+message+; console.errormessage; }, 警告:函数消息{ $'ul.messages'.append'Warn:'+message+; console.warn消息; } }
我认为您只需要缓存原始的console方法并从缓存中调用它们—现在的方式调用存根日志,这会导致无限递归,从而导致堆栈溢出:

$document.readyfunction{ 控制台。记录“您应该知道…”; console.error“出了点问题…”; 控制台。警告“注意这个…”; } //这应该行得通 var native=窗口; var originalConsole=native.console; native.console={ 日志:函数消息{ $'ul.messages'。附加'Log:'+消息+; originalConsole.logmessage; }, 错误:functionmessage{ $'ul.messages'.append'错误:'+message+; originalConsole.errormessage; }, 警告:函数消息{ $'ul.messages'.append'Warn:'+message+; originalConsole.warnmessage; } } 信息
我认为您只需要缓存原始的console方法并从缓存中调用它们—现在的方式调用存根日志,这会导致无限递归,从而导致堆栈溢出:

$document.readyfunction{ 控制台。记录“您应该知道…”; console.error“出了点问题…”; 控制台。警告“注意这个…”; } //这应该行得通 var native=窗口; var originalConsole=native.console; native.console={ 日志:函数消息{ $'ul.messages'。附加'Log:'+消息+; originalConsole.logmessage; }, 错误:functionmessage{ $'ul.messages'.append'错误:'+message+; originalConsole.errormessage; }, 警告:函数消息{ $'ul.messages'.append'Warn:'+message+; originalConsole.warnmessage; } } 信息
您可以创建一个包装器函数,它接受函数并输出修改后的函数

const wrapper = (fn, name) => {
  return function(msg) {
    $('ul.messages').append(`<li>${name}: ${msg}</li>`);
    fn(msg);
  };
}

$(document).ready(() => {
  window.console.log = wrapper(console.log, "Log");
  window.console.warn = wrapper(console.warn, "Warn");
  window.console.error = wrapper(console.error, "Error");
});

您可以创建一个包装器函数,它接受函数并输出修改后的函数

const wrapper = (fn, name) => {
  return function(msg) {
    $('ul.messages').append(`<li>${name}: ${msg}</li>`);
    fn(msg);
  };
}

$(document).ready(() => {
  window.console.log = wrapper(console.log, "Log");
  window.console.warn = wrapper(console.warn, "Warn");
  window.console.error = wrapper(console.error, "Error");
});

为什么不看看堆栈代码段是如何工作的?我在阅读未整理的精简代码时遇到了问题,但看起来它们是开源的:为什么不看看堆栈代码段是如何工作的?我在阅读未整理的精简代码时遇到了问题,但看起来它们是开源的: