Firefox扩展API browser.runtime.onMessage.addListener / sendMessage错误

时间:2019-07-14 00:22:56

标签: api firefox

简单的Firefox后台扩展脚本会导致错误:

// test-bg.js
function test_callback(...args){
    console.log("test_callback() args=", JSON.stringify(args));
}
async function test() {
    browser.runtime.onMessage.addListener(test_callback);
    var has = browser.runtime.onMessage.hasListener(test_callback);
    console.log("has=",has);
    browser.runtime.sendMessage("test of test_callback");
}
test();

控制台输出错误:

Webconsole context has changed
has= true 
Error: Could not establish connection. Receiving end does not exist. 

manifest.json文件是:

{
    "manifest_version": 2,
    "name": "scoped-poller",
    "permissions": [
    ],
    "version": "1.2.0",
    "background": {
        "scripts":[ "test-bg.js"]
    }
}

MDN文档为herehere;看来应该可以。 (我可以发誓昨天它能正常工作。)

我的问题如下:

  1. 代码是否有问题?
  2. 尽管我昨天运行了这个程序,但成功了,没有错误-老实说,我怀疑自己的想法。.我尝试了各种Firefox版本(使用单独的配置文件等)以查看它是否是一个版本问题,但似乎并非如此。因此,我想知道是否可以动态下载Web API javascript,以强制执行相同的行为,而不管FF版本如何。似乎不太可能,但我还是要问。

0 个答案:

没有答案