Получение идентификатора вкладки или URL и отображение его с помощью getCurrent - PullRequest
4 голосов
/ 29 января 2011

Вот мой контент script.js и background.html и ошибка

contentscript.js

chrome.extension.sendRequest({"type":""}); 

background.html

<script type="text/javascript" charset="utf-8">

  chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) {
           chrome.tabs.getCurrent(function(tab){var urls = tab.url;console.log(urls);});  

  });     

</script> 

Сообщение об ошибке на консоли background.html

background.html: 7 Uncaught TypeError: Невозможно прочитать свойство 'url' из неопределенного

Это должно быть легко изменить, но я застрял.

Ответы [ 3 ]

5 голосов
/ 30 января 2011

Вы не можете вызвать get getCurrent, потому что вы не вызываете его из контекста вкладки.Документация говорит, что вы не можете использовать это также.Вы можете использовать это, только если ваше расширение создало вкладку.А вы хотите захватить его идентификатор вкладки, чтобы использовать его с расширением передачи сообщений .Для фоновой страницы нет вкладки.

Получает вкладку, из которой выполняется этот вызов сценария.Может быть неопределенным, если вызывается из контекста без вкладки ( например: фоновая страница или всплывающее окно ).

Если вы хотите получить идентификатор текущей вкладки, вы можетеиспользуйте chrome.tabs.getSelected, который позволит вам получить его URL и идентификатор.

1 голос
/ 03 декабря 2015

это можно попробовать

chrome.tabs.query({active:true, currentWindow:true}, function(tab){
      console.log(tab[0].url);
});
1 голос
/ 29 января 2011

Хм, это действительно не работает.Я хотел бы услышать причину сам, но пока что есть обходной путь:

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
   console.log(sender.tab.url);
});  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...