为什么我的测试是否安装了firefox扩展无效?

时间:2018-04-10 07:22:42

标签: javascript google-chrome firefox google-chrome-extension firefox-webextensions

我为Chrome和Firefox的网络应用程序开发了扩展程序。现在我想检查一下,如果用户已经安装了扩展程序。如果没有,则弹出带有下载链接的消息。

为了确实有一个共同的代码基础,我选择了一个适用于Chrome和Firefox的选项。不幸的是,它只适用于Chrome。

我的代码:

// page.js

window.addEventListener("message", function(event){
  if(event.data && event.data.direction == "from-content-script") {
    document-getElementById("message").style = "display: none";
  }
});

//内容的script.js

window.postMessage({
  direction: "from-content-script",
  message: "Message from the content script"
}, "*");

// manifest.jsons

"content_scripts": [{
   "matches": ["http://localhost:3000/*],
    "js": ["content-script.js"]
}]

所以在Chrome上它运行得很好,但在Firefox上却没有。我想知道内容脚本是否正确注入,因为如果我包含一个用于测试目的的警报,它就不会显示出来。

我指的是这个:How to check if a Firefox WebExtension is installed or not with page JavaScript?但是我无法让它与Firefox一起工作。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

the docs 注意:

<块引用>

路径模式字符串不应包含端口号。添加端口,如:"http://localhost:1234/"* 会导致匹配模式被忽略。

不要使用

   "matches": ["http://localhost:3000/*"],

但是

   "matches": ["http://localhost/*"],