小编vel*_*lox的帖子

内容脚本未从后台脚本接收消息 (Mv3)

我制作了这个简单的消息传递示例 chrome 扩展,其中应该将消息从后台脚本发送到内容脚本。不幸的是,内容脚本似乎没有收到该消息。

后台脚本:

// background.js

function sendMessage(tabId, hostname) {
    console.log("Sending message to tabId: ", tabId)
    chrome.tabs.sendMessage(tabId, {hostname: hostname}, (resp) => {console.log("response: ", resp)});
}

chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
    if (changeInfo.url) {
        console.log(changeInfo.url)
        var hostname = new URL(changeInfo.url).hostname;
        sendMessage(tabId, hostname)

    }
});
Run Code Online (Sandbox Code Playgroud)

内容脚本:

// content.js

console.log("injected");

function logMessage(message) {
    console.log("Message from background: ", message)
}

chrome.runtime.onMessage.addListener(
    (request, sender, sendResponse) => {
        logMessage(request.hostname)
    }
);
Run Code Online (Sandbox Code Playgroud)

清单(v3):

// manifest.json

{
  "name": "Messaging test",
  "description": "",
  "version": "1.0",
  "manifest_version": 3,

  "background": { …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension

3
推荐指数
1
解决办法
3764
查看次数