Chrome.tabs.sendMessage 无故不工作

问题描述

我正在制作 chrome 扩展,并尝试从 chrome 扩展页面向 content.js 发送消息。我知道为了做到这一点,我需要将消息发送到 bakcground.js 并通过将其发送到特定选项卡将其转发到 content.js。我做了很多次,没有遇到任何问题,但这次它不起作用。

main.js 文件(来自扩展页面):

chrome.runtime.sendMessage({
    name: "stop"
})

background.js:

chrome.tabs.query({},tabs => {
    for (let i = 0; i < tabs.length; i++) {
        if (tabs[i].status == "complete") {
            chrome.tabs.sendMessage(tabs[i].id,{ msg: "Hello" })
        }
    }
})

content.js:

function recieve(msg) {
    console.log(msg)
}

chrome.runtime.onMessage.addListener(recieve)

manifest.json:

{
    "manifest_version": 2,"name": "app","description": "app description","version": "3.0.0","icons": {
        "19": "./images/icon_19.png","128": "./images/icon_128.png","150": "./images/icon_150.png"
    },"browser_action": {
        "default_title": "title"
    },"permissions": [
        "tabs","alarms","notifications"
    ],"content_scripts": [
        {
            "matches": [
                "<all_urls>"
            ],"js": [
                "jquery-3.4.1.min.js","content.js"
            ]
        }
    ],"background": {
        "scripts": [
            "background.js"
        ]
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)