Расширения Chrome Tab: getCurrent против getSelected? - PullRequest
5 голосов
/ 06 января 2011

Я пишу расширение Chrome. В качестве части расширения я хочу получить URL-адрес вкладки, с которой было вызвано расширение. В чем разница между использованием:

chrome.tabs.getSelected(null, function(tab) { var myTabUrl = tab.url; });

и

chrome.tabs.getCurrent(function(tab) { var myTabUrl = tab.url; });

Ответы [ 3 ]

20 голосов
/ 04 апреля 2012

Метод chrome.tabs.getSelected устарел.Вместо этого вы должны использовать chrome.tabs.query.

Вы не можете найти официальный документ для устаревшего метода chrome.tabs.getSelected.Вот документ для метода chrome.tabs.query.

15 голосов
/ 06 января 2011

getCurrent должно быть тем, что вам нужно, getSelected - это вкладка, которая в данный момент выбрана в браузере.Когда они могут отличаться - возможно, ваше расширение запускает какой-то фоновый cronjob во вкладках, так что вкладка в настоящее время не может быть выбрана пользователем.

Хорошо, очевидно, я все понял неправильно.getCurrent следует использовать только внутри собственных страниц расширения, с которыми связана вкладка (например, options.html), вы не можете использовать ее на фоновой или всплывающей странице.getSelected - это вкладка, которая в данный момент выбрана в браузере.

Что касается вашего первоначального вопроса - вам, вероятно, не нужен ни один из этих двух.Если вы отправляете запрос из скрипта контента на фоновую страницу, то вкладка, из которой делается этот запрос, передается как параметр sender.

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

Для тех, кто ищет рабочий пример chrome.tabs.query вместо устаревшего chrome.tabs.getSelected:

chrome.tabs.query({
    active: true,
    lastFocusedWindow: true
}, function (tabs) {
    var myTabUrl = tab[0].url;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...