Получить текущую активную вкладку из background.js после того, как страницы уже загружены - PullRequest
0 голосов
/ 07 января 2019

Я занимаюсь разработкой Firefox WebExtension. Мне нужно получить текущую активную вкладку, однако, с некоторыми дополнительными точками. Мне удалось получить текущую активную вкладку как из скрипта контента, так и из скрипта backgrounde, однако события загружаются при загрузке страницы. Суть моего вопроса в том, что мне нужно получить активную вкладку даже после загрузки страниц. Например, у меня есть 2 вкладки в браузере, мне удалось получить их URL, когда они загружены, но когда я перемещаюсь между ними позже (когда они уже загружены и открыты) - я не получаю никакой информации. Мне удалось решить этот вопрос с помощью Alarm (в фоновом скрипте), который запросит текущую активную вкладку и выдаст нужный результат.

Но есть ли лучший подход к этому вопросу? Как я могу сделать это без тревоги?

1 Ответ

0 голосов
/ 07 января 2019

Вы можете получить активную вкладку в любое время из фонового скрипта с помощью tabs.query ()

const querying = browser.tabs.query({currentWindow: true, active: true});
querying.then(logTabs, onError);

Обновление комментария

Так вы получаете активную вкладку из фона. Время зависит от вас. Есть события , которые вы можете прослушать, чтобы узнать, когда запускать код, например:

  • tabs.onActivated
  • tabs.onAttached
  • tabs.onCreated
  • tabs.onDetached
  • tabs.onHighlighted
  • tabs.onMoved
  • tabs.onRemoved
  • tabs.onReplaced
  • tabs.onUpdated
  • tabs.onZoomChange

Существуют также события, которые можно запустить из сценария содержимого и отправить в фоновый сценарий с помощью runtime.sendMessage () .

Все зависит от ситуации и того, когда вы хотите активировать код.

...