Chrome 将消息从内容脚本发送到另一个脚本

hjzp0vay  于 2023-01-15  发布在  Go
关注(0)|答案(1)|浏览(157)

我正在开发一个Google chrome扩展,目的是将消息从script1.js发送到script2.js,下面是我在manifest.json中所写的内容:

{
    "matches": ["https://www.google.fr/"],
    "css": ["styles.css"],
    "js": ["script1.js"]
       
  },
  {
    "matches": ["my_website.html"],
    "css": ["styles.css"],
    "js": ["script2.js"]
       
  },

下面是我在script1.js中编写的内容:
发送消息('你好世界!!!!');
在script2.js中:
chrome. runtime. onMessage. addListener(函数(响应、发送方、发送响应){
警报(响应);
);
我不认为我这样做是正确的,我想我必须使用background.js,但我不知道如何使用。
先谢谢你了。

xnifntxz

xnifntxz1#

正如你所说,你必须使用后台脚本。例如:
脚本1:

chrome.runtime.sendMessage({from:"script1",message:"hello!"});

background.js

var tab2id;
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    if (message.from == "script2") {
        tab2id = sender.tab.id;
    }
    if (message.from == "script1"){
        chrome.tabs.sendMessage(tab2id,message);
    }
});

script2.js

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    alert("Script1 says: " + message.message);
});
chrome.runtime.sendMessage({from:"script2"});

请记住在清单中包含您的后台脚本:

"background": {
    "scripts": ["background.js"]
}

相关问题