我正在开发一个 jQuery 插件,并试图制作一个统一的跨浏览器控制台对象以进行调试。该插件将利用 Firebug 或 FirebugLite,但也允许用户选择浏览器的本机控制台对象(如果可用)。对于 Safari/Chrome,控制台方法只接受 1 个参数,而 Firebug 控制台 API(这是我试图复制的)接受打印为串联字符串的任意数量的参数。我正在使用以下代码来覆盖本机控制台日志方法:
window.console._log = window.console.log;
window.console.log = function(){
window.console._log($.makeArray(arguments).join(", "));
};
我有一个测试页面,点击时会触发 console.log("str1", "str2") 命令。前几次,日志消息按预期工作,但一段时间后(通常只有几秒钟),日志消息开始只打印第一个参数。就好像控制台对象正在恢复到其原始的本机状态,而我的覆盖 log() 方法正在被破坏。是否有人对此有更多信息或可能有解决方法?