Расширение Chrome: получить последнюю использованную вкладку - PullRequest
2 голосов
/ 31 декабря 2011

Я пытаюсь создать простой плагин для Google Chrome. Одной из функций будет возврат к последней использованной вкладке, но я не знаю, как это сделать.

Итак, есть ли способ получить последнюю использованную вкладку?

Ответы [ 3 ]

6 голосов
/ 31 декабря 2011

Вы можете попробовать добавить хук в событие onSelected на вкладках и просто сохранить эту переменную ... примерно так:

var curTabID = 0;
var curWinID = 0;

chrome.tabs.onSelectionChanged.addListener(function(tabId, selectInfo) {
   curTabID = tabId;
   curWinID = selectInfo.windowId;
});

Тогда у вас всегда есть идентификатор окна и идентификатор вкладки.

2 голосов
/ 01 октября 2017

Примечание: Этот ответ не помогает спрашивающему, но я подумал, что он может быть полезен для начинающих разработчиков Firefox, которые попадают сюда, потому что Firefox теперь использует тот же API, что и Chrome.

Программисты веб-расширения Firefox не должны самостоятельно отслеживать вкладку. Вместо этого они могут запрашивать его следующим образом из-за свойства lastAccessed:

  chrome.tabs.query({
    active: false
  }, (tabs) => {
    let tab = tabs.reduce((previous, current) => {
      return previous.lastAccessed > current.lastAccessed ? previous : current;
    });
    // previous tab
    console.log(tab);
  });

Редактировать : Стоит отметить, что отметка времени lastAcessed также устанавливается, если в фоновом режиме создается новая вкладка. Так что этот метод не является полностью пуленепробиваемым, так как вкладка, открытая в фоновом режиме, будет рассматриваться как последняя посещенная вкладка.

0 голосов
/ 31 декабря 2011

Я думаю, вы должны использовать функцию chrome.windows.getCurrent , чтобы получить текущее окно, и функцию chrome.tabs.query , чтобы получить активную вкладку в этом окне.

Вот пример (скрипт из фоновой страницы):

chrome.windows.getCurrent(
  function(win) { 
    // win is a Window object referencing the current window
    chrome.tabs.query({'windowId': win.id, 'active': true}, 
      function(tabArray) { 
        // tabArray is a Tab Array referencing active tab(s)
      }
    ); 
  }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...