Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将消息从后台*仅*发送到不带选项卡ID的弹出窗口_Javascript_Firefox Addon Webextensions - Fatal编程技术网

Javascript 如何将消息从后台*仅*发送到不带选项卡ID的弹出窗口

Javascript 如何将消息从后台*仅*发送到不带选项卡ID的弹出窗口,javascript,firefox-addon-webextensions,Javascript,Firefox Addon Webextensions,在Firefox/Chrome WebExtension中,当您从后台脚本向弹出窗口发送消息时,您不能使用tabId,因为弹出窗口没有tabId。 因此,您必须使用: chrome.runtime.sendMessage(data) 但所有选项卡也会收到此消息。 我只想向弹出窗口发送消息。这可能吗?从技术上讲,这只会被分机的页面接收。普通选项卡将不接收它们,要向内容脚本发送消息,您需要tabs.sendMessage 也就是说,您可以使用extension.getViews获取弹出窗口的窗口对

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

chrome.runtime.sendMessage(data)
但所有选项卡也会收到此消息。
我只想向弹出窗口发送消息。这可能吗?

从技术上讲,这只会被分机的页面接收。普通选项卡将不接收它们,要向内容脚本发送消息,您需要
tabs.sendMessage

也就是说,您可以使用
extension.getViews
获取弹出窗口的
窗口
对象,并直接在那里调用一些东西

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