在Firefox / Chrome WebExtension中,当您从后台脚本向弹出窗口发送消息时,您无法使用tabId,因为弹出窗口没有。所以你必须使用:
chrome.runtime.sendMessage(data)
但是所有标签也会收到此消息。我只想向弹出窗口发送消息。那可能吗?
从技术上讲,这仅由扩展程序页面接收。普通标签不会接收它们,并且要向内容脚本发送消息,您需要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();
}