关于将我自己的控制台实现为XPCOM的建议

时间:2010-07-04 16:13:49

标签: firefox firefox-addon xpcom

我想将自己的控制台用于我的扩展程序,在那里我将打印出各种调试信息。我以为我会这样做

window.open("chrome://myextension/content/console.xul"..

然后打印到该窗口的文本框中。你在这里看到了什么问题吗? =)

现在我有一个小问题,window.open立即返回,如果我继续并立即使用myconsole.log(“boo”)函数,那么新打开的窗口中的内容尚未加载,我将得到错误。这意味着我必须等待控制台完成加载才能打印到它。这样做的正确方法是什么?我可以在log方法中使用nsITimer或thread.sleep来检查它是否已经加载,但我不喜欢这样。我也不知道我怎么能正确使用window.onload事件,因为我看到的唯一方法就是像window.onload = function(){我所有的扩展代码..}这样我也不喜欢。< / p>

我希望它可以随时随地使用

console = Cc["@myconsole;1"].getService().wrappedJSObject;
console.log("foo");

有什么建议吗?感谢耐心=)

1 个答案:

答案 0 :(得分:2)

我首先将它作为后端日志记录模块实现:

https://developer.mozilla.org/en/JavaScript_code_modules

然后编写一个与之交互的自定义​​chrome窗口(获取所有日志,清除日志,订阅以获取新的日志事件)

为了节省编码时间,请参阅console2和(最不为人知的)firebug tracing console