1

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

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

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

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

我希望它可以像这样随时随地使用

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

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

4

1 回答 1

2

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

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

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

为了节省自己的编码时间,另请参见console2和(最不为人知的)萤火虫跟踪控制台

于 2010-07-13T11:56:22.320 回答