Получить URL-адреса Chrome всплывающих окон - PullRequest
1 голос
/ 26 июня 2011

Я написал фрагмент кода, который предупреждает URL вкладки каждые 2 секунды. Тем не менее, я не могу сделать это для всплывающих окон. Всякий раз, когда я открываю всплывающее окно; URL вкладки имеет фоновую страницу, а не всплывающее окно.

Как я могу получить URL всплывающего окна в crome?

<script>
var seconds = 2*1000;
setInterval(function(){
    chrome.tabs.getSelected(null, function(tab) {
        tabId = tab.id;
        tabUrl = tab.url;
        alert(tabUrl);
});
},seconds);
</script>
</head>

Ответы [ 2 ]

1 голос
/ 26 июня 2011

Когда вы передаете null вместо windowId на chrome.tabs.getSelected(), по умолчанию используется «текущее» окно, которое не является необходимым для выбранного, как объяснено здесь :

Текущее окно - это окно, содержащее код, который выполняется в данный момент. Важно понимать, что это может отличаться от самого верхнего или сфокусированного окна.

Итак, вам нужно сначала найти сфокусированное окно, а затем получить выбранную вкладку:

var seconds = 2*1000;
setInterval(function(){
    chrome.windows.getLastFocused(function(window) {
        chrome.tabs.getSelected(window.id, function(tab) {
            tabId = tab.id;
            tabUrl = tab.url;
            alert(tabUrl);
        });
    });
},seconds);
0 голосов
/ 26 июня 2011

В content_script.js или popup.html:

function get_urlInfo() {
   var d = {
      'action' : 'getUrl'
   };

   chrome.extension.sendRequest(d, function(response) {
       alert(response.url);
   });
};

В background.html:

function onRequest(request, sender, sendResponse) { 
   if (request.action == 'getUrl') {
      sendResponse({'url' : sender.tab.url});                       
   }
};

chrome.extension.onRequest.addListener(onRequest);  

Это должно работать!

...