3

Mozilla 文档(https://addons.mozilla.org/en-US/developers/docs/sdk/latest/dev-guide/console.html)说我应该用它console.log来从扩展生成消息。据说这些消息会出现在 Firefox 错误控制台中。但这对我来说不是这样。我今天第一次使用插件生成器,我想创建一个扩展,在某些事件上切换选项卡。选项卡确实切换到了我期望的选项卡,所以我的代码肯定会运行。但是console.log 输出无处可见。

我已将过滤器设置为“全部”。我看到的只是来自插件构建器本身的 CSS 警告。

我还安装了 Firebug。它也没有显示任何东西。(不过,在网页上下文中使用 console.log 时,这可以正常工作。)Firebug 的问题在于它只为一个/一些选项卡启用,所以在切换选项卡时,它是无用的。我需要一个始终存在的日志窗口。

那么console.log 的输出会在哪里结束呢?

4

4 回答 4

9

继续console.log("something")在您的插件中进行测试main()

如果错误控制台(“消息”选项卡)中没有显示任何内容,则可能是 Firefox 未配置为显示console.log(最近发生在 jetpack sdk 1.14 中)。有关详细信息,请参阅:SDK 1.14 中对 console.log 行为的更改

快速而肮脏的总结:about:config设置extensions.sdk.console.logLevel"all"

虽然从你的问题:

我已将过滤器设置为“全部”。

...听起来你已经意识到了这一点。因此,您的意思并不完全清楚。

于 2013-04-13T20:33:56.693 回答
5

而不是var aConsoleService = Cc...只坚持以下内容,您可以使用所有内容:

Cu.import('resource://gre/modules/devtools/Console.jsm');

现在可以做任何事情console.log('blah'),,,,console.time('rawr')等等console.endTime('rawr')等等

于 2014-08-18T23:07:59.463 回答
2

只是为了完整性:在一个引导的、非基于 SDK 的插件中,我必须在 bootstrap.js 中添加这两行以获得伪造的 console.log():

var aConsoleService = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService);
var console = {log:function(str){aConsoleService.logStringMessage(str);}}

可能对其他人有用,我猜..

于 2014-04-07T09:48:53.407 回答
2

我猜他们改变了一些东西,现在 console.log 没有显示。我使用 console.error 进行调试,它仍然显示在 ctrl-shift-j 中。

此页面说明了有关弃用错误控制台并改用 Web 控制台的内容。应该是有关系吧 https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIConsoleService

这不需要sdk。

于 2014-08-18T10:27:06.977 回答