根据this simple example: 如何知道哪个内容脚本(哪个标签)实际上是向后台发送消息(第10行)?例如,使用标签ID。
答案 0 :(得分:1)
在example for background-script.js中,portFromCS
有一个发件人属性:https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/runtime/Port
该发件人是包含tab
的对象,尤其是tab.id
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/runtime/MessageSender
/* background-script.js */
browser.runtime.onConnect.addListener(port => {
port.onMessage.addListener((msg) => {
console.log("bg received", msg, "from tab", port.sender.tab.id);
});
});
您还可以使用“一次性”或无连接的消息
browser.runtime.onMessage
处理程序具有签名(msg, sender, reply)
,其中sender与上面的MessageSender对象相同。