如何在Firefox WebExtension中查看后台脚本的console.log输出?

时间:2016-08-22 09:42:44

标签: javascript firefox firefox-addon firefox-webextensions firefox-developer-tools

有谁知道如何在后台脚本中查看console.log()调用的输出?我可以在内容脚本中看到相同的输出。这是一个简单的脚本,我正在测试它:

这是我的 background.js

console.log("Message from background.js");

这是我的 manifest.json

{
    "name": "TestBed",
    "manifest_version": 2,
    "version": "1.0",

    "background": {
        "scripts": ["background.js"]
    },

    "browser_action": {
        "default_title": "Click"
    },

    "applications": {
        "gecko": {
            "id": "testbed@example.com",
            "strict_min_version": "48.0a1"
        }
    }
}

我也在后台脚本中试过这个:

chrome.browserAction.onClicked.addListener(function() {
    console.log('Message from background.js onclicked handler');
});

我甚至已经卸载了Firebug,正如其他帖子所建议的那样,但这也没有任何区别(请注意内容脚本中的console.log有效)。

1 个答案:

答案 0 :(得分:5)

有关在控制台中查看扩展程序输出的更一般答案,请参阅我的答案:Google Chrome / Firefox do not see extension output in console

您可以在Browser Console中查看后台脚本中console.log()的输出。您可以使用键盘快捷键 Ctrl - Shift - J Cmd 打开浏览器控制台 - OSX上的 Shift - J ,或者从Firefox菜单栏:Tools➞WebDeveloper➞浏览器控制台。

在大于或等于49的版本中测试WebExtensions时, 1 我经常滥用错误信息以使扩展程序打开浏览器控制台。后台脚本不支持alert()功能,但会打开浏览器控制台并在控制台中输出警报文本。 2 这样做将适用于大于或等于49.0的Firefox版本。但是,它在早期版本的Firefox中引发了错误。

为了进行测试,我经常在后台脚本中包含以下内容:

//* For testing, open the Browser Console
try {
    //alert() is not actually supported in Firefox WebExtension background scripts.
    //This forces the Browser Console open.
    //This abuse of a misfeature works in FF49.0b+, not in FF48.
    alert('Open the Browser Console.');
} catch(e) {
    //alert() throws an error in Firefox versions below 49.
    console.log('alert() threw an error. Probably Firefox version < 49.');
}
//*
  1. 在Firefox 52.0a2(开发人员版)和53.0a1(每晚)中有一段时间,它会引发一个神秘的错误。在这些版本的最新版本中,这已经返回到Firefox 49中的功能:打开浏览器控制台并在2(下面)中显示传递的文本和消息。
  2. 除了传递给alert()的文本外,它还会在单独的行中输出:&#34;后台窗口不支持alert();请改用console.log。&#34;