Как отфильтровать onDetached из onCreated chrome слушатель? - PullRequest
0 голосов
/ 31 марта 2020

Я пишу расширение chrome, в котором я хочу выполнить задачу при создании окна, но не при создании окна путем отсоединения существующей вкладки.

Пока что у меня есть got is

chrome.windows.onCreated.addListener(function(window) {

    if (window.WindowType !== 'normal') return;

   // rest of function...

Я уже отфильтровываю всплывающие окна со второй строкой, но не могу понять, как отфильтровать отсоединяющиеся вкладки, даже после очистки chrome.tabs API.

Я знаю, что есть функция chrome.tabs.OnDetached.addListener, но я не понимаю, как ее использовать, чтобы не делал то, что написано в прослушивателе onCreated, который у меня уже есть.

1 Ответ

0 голосов
/ 02 апреля 2020
  • При открытии нового окна запускаются два события onCreated: для окна и вкладки.
  • Когда вкладка отсоединена одна Событие onCreated запускается для окна.

На основании этого можно использовать два слушателя для фильтрации отсоединения:

let newWindowId;

chrome.windows.onCreated.addListener(w => {
  newWindowId = w.id;
});

chrome.tabs.onCreated.addListener(tab => {
  if (newWindowId === tab.windowId) {
    chrome.windows.get(newWindowId, {populate: true}, w => {
      if (w.tabs.length === 1) {
        chrome.tabs.create({
          url: 'https://www.example.org',
          active: false,
          windowId: newWindowId,
        });
      }
    });
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...