Как получить URL-адрес текущей вкладки для расширения Chrome? - PullRequest
56 голосов
/ 26 мая 2011

Я знаю, что есть много похожих вопросов по SO, но я не могу заставить его работать.

Я пытаюсь получить URL текущей вкладки из моего расширения Chrome.Однако предупреждение (tab.url) возвращает «Не определено».Я добавил «вкладки» к своим разрешениям в manifest.json.Есть идеи?

<html>
<head>
<script>

    chrome.tabs.getSelected(null, function(tab) {
        tab = tab.id;
        tabUrl = tab.url;

        alert(tab.url);
    });

</script>
</head>

Ответы [ 5 ]

110 голосов
/ 24 июля 2013

Просто к сведению людей из Google:

Метод, используемый ОП, устарел.Чтобы получить вкладку, которую пользователь просматривает, и только в окне, которое он просматривает, используйте:

  chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {

     // since only one tab should be active and in the current window at once
     // the return variable should only have one entry
     var activeTab = tabs[0];
     var activeTabId = activeTab.id; // or do whatever you need

  });
28 голосов
/ 26 мая 2011

Проблема в этой строке:

tab = tab.id;

Это должно быть что-то вроде:

var tabId = tab.id;
7 голосов
/ 11 сентября 2015

Вот что у меня сработало:

chrome.tabs.query({
    active: true,
    lastFocusedWindow: true
}, function(tabs) {
    // and use that tab to fill in out title and url
    var tab = tabs[0];
    console.log(tab.url);
    alert(tab.url);
});
5 голосов
/ 12 февраля 2018

С помощью ES6 вы можете легко написать более приятный код:)

chrome.tabs.query({
  active: true,
  currentWindow: true
}, ([currentTab]) => {
  console.log(currentTab.id);
});
4 голосов
/ 29 июля 2017

manifest.json =>

"разрешения": ["вкладки"]

в js =>

       chrome.tabs.query({
            active: true,
            lastFocusedWindow: true
        }, function(tabs) {
            // and use that tab to fill in out title and url
            var tab = tabs[0];
            console.log(tab.url);
            alert(tab.url);
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...