如何在没有tabId的情况下将消息从后台* * *发送到弹出窗口

问题描述 投票:0回答:1

在Firefox / Chrome WebExtension中,当您从后台脚本向弹出窗口发送消息时,您无法使用tabId,因为弹出窗口没有。所以你必须使用:

chrome.runtime.sendMessage(data)

但是所有标签也会收到此消息。我只想向弹出窗口发送消息。那可能吗?

javascript firefox-webextensions
1个回答
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();
}
© www.soinside.com 2019 - 2024. All rights reserved.