Как я могу получить URL текущей вкладки от расширения Google Chrome?

Я весело провожу время с расширением Google Chrome, и я просто хочу знать, как я могу сохранить URL текущей вкладки в переменной?

166
задан Mark Amery 31 January 2017 в 18:22
поделиться

3 ответа

Друг отвечает на мой вопрос.

Сначала нужно установить права доступа к закладке API :

"permissions": [
    "tabs"
]

И сохранить URL :

chrome.tabs.getSelected(null,function(tab) {
    var tablink = tab.url;
});
75
ответ дан 23 November 2019 в 21:03
поделиться

<привет, вот пример Google Chrome Sample, который отправляет текущий Сайт другу по электронной почте. Основная идея заключается в том, что вам нужно... в первую очередь он получает содержимое страницы (не interessting для вас)... после этого он получает URL (<-- хорошая часть)

Кроме того, это хороший рабочий пример кода, который я предпочитаю motstly, а не чтение документов.

Можно найти здесь: Отправьте по электронной почте эту страницу

2
ответ дан 23 November 2019 в 21:03
поделиться

Проблема в том, что chrome.tabs.getSelected является асинхронным. Приведенный ниже код обычно не работает должным образом. Значение 'tablink' по-прежнему будет неопределенным, когда оно будет записано в консоль, потому что getSelected еще не вызвал обратный вызов, который сбрасывает значение:

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

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

Попробуйте что-нибудь вроде:

chrome.tabs.getSelected(null, function(tab) {
    myFunction(tab.url);
});

function myFunction(tablink) {
  // do stuff here
  console.log(tablink);
}
25
ответ дан 23 November 2019 в 21:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: