如何知道内容脚本在Firefox插件中与后台进行通信?

时间:2017-03-07 14:21:40

标签: javascript background firefox-addon messaging content-script

根据this simple example: 如何知道哪个内容脚本(哪个标签)实际上是向后台发送消息(第10行)?例如,使用标签ID。

1 个答案:

答案 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对象相同。