Как отправить сообщение из фона * только * во всплывающее окно без tabId - PullRequest
0 голосов
/ 23 марта 2019

В Firefox / Chrome WebExtension, когда вы отправляете сообщение из фонового скрипта во всплывающее окно, вы не можете использовать tabId, потому что во всплывающем окне его нет.Поэтому вы должны использовать:

chrome.runtime.sendMessage(data)

, но это сообщение также принимается всеми вкладками.Я хочу отправить сообщение только во всплывающее окно.Это возможно?

1 Ответ

1 голос
/ 23 марта 2019

Технически, это получают только страницы расширения. Обычные вкладки не получают их, и для отправки сообщений в контентные скрипты вам нужно 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();
}
...