如何仅从后台将消息发送到不带tabId的弹出窗口

时间:2019-03-23 13:55:51

标签: javascript firefox-webextensions

在Firefox / Chrome WebExtension中,当您将消息从后台脚本发送到弹出窗口时,您不能使用tabId,因为弹出窗口没有一个。 因此,您必须使用:

chrome.runtime.sendMessage(data)

,但所有标签也都收到此消息。 我想向弹出窗口发送仅 消息。有可能吗?

1 个答案:

答案 0 :(得分:1)

从技术上讲,这仅由扩展名的页面接收。普通标签不会接收它们,并且将消息发送到内容脚本需要您tabs.sendMessage

也就是说,您可以使用extension.getViews获取弹出窗口的window对象,然后直接在其中调用某些东西。

请参见https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/extension/getViews

var windows = chrome.extension.getViews({type: "popup"});
if (windows.length) {
  windows[0].something();
}