我为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一起工作。
感谢您的帮助!
答案 0 :(得分:0)
如 the docs 注意:
<块引用>路径模式字符串不应包含端口号。添加端口,如:"http://localhost:1234/"* 会导致匹配模式被忽略。
不要使用
"matches": ["http://localhost:3000/*"],
但是
"matches": ["http://localhost/*"],