Edge Extension 不响应 runtime.onMessage.addListener()

Edge Extension does not respond to runtime.onMessage.addListener()

我一直在尝试在 Edge 平台上开发一些扩展。到目前为止进展顺利,直到我遇到障碍物。我的后台脚本中有一个方法可以生成上下文菜单,单击时会向上下文脚本发送一条消息。一切正常,除了上下文脚本没有显示调用事件侦听器的迹象。

这是我的代码: manifest.json:

{
"name":"Edge",
"author":"Auth",
"version":"1.0",
"description":"none",
"permissions":["*://*/","tabs","bookmarks","unlimitedStorage","contextMenus"],
"browser_action":{
    "default_icon":{
        "20":"images/Edge.png",
        "40":"images/Edge40.png"
    },
    "default_title":"Edge"
},
"background":{
    "persistent":true,
    "scripts":["back.js"]

},
"content_scripts":[{
    "matches":["<all_urls>"],
    "js":["cs.js"],
    "run_at":"document_end"
}]

}

后台脚本:

browser.contextMenus.create({
id: "Show Notes",
title: "Show Notes",
contexts: ['link']
});

browser.contextMenus.create({
    id:"Make Notes",
    title:"Make Notes",
    contexts:['all']
});


browser.contextMenus.onClicked.addListener(function(info, tab) {
    alert("s")
    alert(info.menuItemId)
    alert(info.linkUrl)
    browser.tabs.query({active: true}, function(tabs){
        browser.tabs.getCurrent(function(tab){
            browser.tabs.sendMessage(tab.id,{
                "id":info.menuItemId,
                "link":info.linkUrl
            })
        })
    }) 
    alert("sent")
});

内容脚本:

browser.runtime.onMessage.addListener(lis)

function lis(request, sender, sendResponse) {
    alert("msg")
    if(request.id=="Show Notes"){
        alert("received")
        note.style.display="block"
    }
    if(request.id=="Make Notes"){
        note.style.display="block"
        alert("received")
    }
    return true
}

后台脚本中的所有警报消息都可以正常工作,但内容脚本甚至一个弹出窗口都没有。

我已经阅读并尝试实施了很多答案,但没有一个有效。 可能出了什么问题? 谢谢!

由于 Edge 不支持 Promises,您将不得不依赖回调机制。请将您的 tabs.querytabs.getCurrenttabs.sendMessage 同步。对于给定的代码,您将在后台页面的控制台中看到一个错误 "id as undefined"。同步上述两种方法将有助于解决此问题。此外,manifest.json 中的 bookmark 权限也没有用,因为 Edge 当前不支持书签。 (只是想让你知道这个,以防你错过了)。