Javascript 在HTML页面中显示浏览器控制台
编辑:我找到了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消息; } }Javascript 在HTML页面中显示浏览器控制台,javascript,browser,console.log,Javascript,Browser,Console.log,编辑:我找到了Stack Overflow使用的代码: 我已经找到了一系列的答案,展示了如何将控制台输出到网页,但我正在尝试使其能够将消息也记录到控制台。具有讽刺意味的是,如果您在堆栈溢出上运行代码段,它们会执行我试图执行的操作 //这会导致堆栈溢出 var native=窗口; native.console={ 日志:函数消息{ $'ul.messages'。附加'Log:'+消息+; console.logmessage; }, 错误:functionmessage{ $'ul.messa
我认为您只需要缓存原始的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");
});
为什么不看看堆栈代码段是如何工作的?我在阅读未整理的精简代码时遇到了问题,但看起来它们是开源的:为什么不看看堆栈代码段是如何工作的?我在阅读未整理的精简代码时遇到了问题,但看起来它们是开源的: