2013-10-23 19 views
9

所以我需要检查在Firefox的一些结果附加我的工作,但在执行console.log()不起作用。我试过简单地把console.log("Hello World");放在main.js文件中并加载它,但它没有记录任何东西。火狐附加组件的console.log()不工作

+0

您要在哪里寻找它?你应该看看Firefox控制台 - 如果它没有运行,那么你的代码有什么问题,根据你给出的内容,目前无法回答。 –

+0

我正在查看控制台,命令/ ctrl + shift + j。无论我将它放在main.js文件还是内容脚本中,它都不会在控制台中记录任何内容。 –

回答

13

默认的最低日志级别为error。其他一切都不打印,包括console.log()。有关如何使用和配置日志记录和关联关卡的更多信息,请参阅Log Levels

+0

谢谢,这非常有益! –

+1

哇,非常有益。 'console.time(name)'和'console.timeEnd(name)'功能非常棒。 'extensions.sdk.console.logLevel'影响非sdk附加组件吗?好奇,因为该文件似乎有点蹩脚。 – Noitidart

+3

请注意,logLevel的这个属性在我的Firefox的about:config页面(idk why)中不可见。因此,在搜索解决方案一段时间后,我终于按下了“Ctrl + Shift + J”,并打开了浏览器控制台,我可以使用console.error从我的插件中看到日志。 –

2

您可以使用Firebug开发您的Firefox扩展。如果你安装了这个插件,你可以将它与“Firebug.Console.log();”命令。只要小心一点,在这个命令中,你不应该在后面输入“Console”!此外,您可以使用以下命令使用Firefox“浏览器控制台”(而不是Web控制台): Application.console.log();

7

如果您正在使用扩展/插件(而非SDK),只需导入Console.jsm,然后console.log()就可以正常工作。这就是我所做的。

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

更新:火狐44+

Components.utils.import('resource://gre/modules/Console.jsm'); 
+1

我想问问,我在哪里导入?在内容脚本中还是在主脚本中? – Tony

+1

在主要脚本ususally – erosman

1

使用附加组件SDK的?您必须为您的分机设置Log level

var self = require("sdk/self"); 
var prefService = require("sdk/preferences/service"); 
prefService.set('extensions.'+ self.id +'.sdk.console.logLevel','all');