提问人:jasonkarns 提问时间:2/12/2009 最后编辑:cgpjasonkarns 更新时间:4/26/2009 访问量:2130
正在重置 Safari/Chrome 中的全局控制台对象
Global console object in Safari/Chrome being reset
问:
我正在开发一个 jQuery 插件,并尝试制作一个统一的跨浏览器控制台对象进行调试。该插件将利用 Firebug 或 FirebugLite,但也允许用户选择浏览器的本机控制台对象(如果可用)。对于 Safari/Chrome,控制台方法只接受 1 个参数,而 Firebug 控制台 API(这是我试图复制的)接受任意数量的参数,这些参数打印为串联字符串。我正在使用以下代码来覆盖本机控制台日志方法:
window.console._log = window.console.log;
window.console.log = function(){
window.console._log($.makeArray(arguments).join(", "));
};
我有一个测试页面,可以在单击时触发控制台.log(“str1”,“str2”)命令。前几次,日志消息按预期工作,但一段时间后(通常只有几秒钟),日志消息开始只打印第一个参数。就好像控制台对象正在恢复到其原始的本机状态,而我覆盖的 log() 方法正在被销毁。是否有人对此有更多信息,或者是否有解决方法?
答:
0赞
Miles
2/16/2009
#1
也许你可能会有更多的运气来替换整个 Console 对象?这对我有用:
window._console = window.console;
window.console = {
log: function() {
window._console.log($.makeArray(arguments).join(", "));
}
};
FWIW,在 WebCore IDL 源代码中,属性标记为可替换,而控制台对象的属性则不标记为可替换。console
DOMWindow
评论