【问题标题】:Firefox Addon console.log() Not workingFirefox 插件 console.log() 不工作
【发布时间】:2013-10-23 02:44:02
【问题描述】:

所以我需要检查我正在开发的 Firefox 插件中的一些结果,但是 console.log() 不起作用。我试过简单地将console.log("Hello World"); 放在 main.js 文件中并加载它,但它没有记录任何内容。

【问题讨论】:

  • 你在哪里找它?您应该查看 Firefox 控制台 - 如果它没有运行,那么您的代码有问题,根据您目前提供的内容无法回答。
  • 我正在查看控制台,command/ctrl+shift+j。无论我将它放在 main.js 文件还是内容脚本中,它都不会在控制台中记录任何内容。

标签: javascript firefox firefox-addon


【解决方案1】:

默认情况下,最低日志级别为error。其他所有内容均未打印,包括console.log()。有关如何使用和配置日志记录和相关级别的更多信息,请参阅Log Levels

【讨论】:

  • 谢谢,非常有帮助!
  • 哇非常有益。 console.time(name)console.timeEnd(name) 功能很棒。 extensions.sdk.console.logLevel 会影响非 sdk 附加组件吗?很好奇,因为那个文档看起来有点蹩脚。
  • 请注意,logLevel 的这个属性在我的 Firefox 的 about:config 页面中不可见(idk 为什么)。所以,在寻找解决方案一段时间后,我终于按下了Ctrl+Shift+J,它打开了浏览器控制台,我可以在其中使用console.error查看来自我的插件的日志。
  • 您提供的“日志级别”链接已损坏,我找不到明显的替代品。考虑到这个问题(和答案)的年代,我可以推测它们仅适用于 WebExtension 之前的 Firefox 插件开发。是这样吗?
【解决方案2】:

如果您正在开发扩展/插件(不是 SDK),只需导入 Console.jsm,然后 console.log() 将正常工作。我就是这么做的。

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

更新:自 Firefox 44+ 起

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

【讨论】:

  • 我想问一下,这个在哪里导入?在内容脚本中还是在主脚本中?
  • 通常在主脚本中
【解决方案3】:

您可以使用 Firebug 进行您的 firefox 扩展开发。如果您安装此附加组件,您可以将其控制台与“Firebug.Console.log();”一起使用命令。请注意,在此命令中,您不应键入带有小写字母的“Console”!

此外,您可以通过以下命令使用 Firefox“浏览器控制台”(不是 Web 控制台): 应用程序.console.log();

【讨论】:

    【解决方案4】:

    使用插件 SDK?您必须为您的扩展设置Log level

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      • 2023-03-30
      相关资源
      最近更新 更多