获取Chrome弹出窗口的URL

时间:2011-06-26 15:39:39

标签: javascript google-chrome google-chrome-extension pop

我写了一段代码,每隔2秒就会警告标签网址。但是,我无法为弹出窗口执行此操作。每当我打开一个弹出窗口;标签网址是后台页面,而不是弹出窗口。

如何在crome中获取弹出窗口的URL?

<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 个答案:

答案 0 :(得分:1)

当您将null而不是windowId传递给chrome.tabs.getSelected()时,它默认为“当前”窗口,这不是所选窗口,如here所述:< / p>

  

当前窗口是包含当前正在执行的代码的窗口。重要的是要意识到这可能与最顶层或聚焦窗口不同。

因此,您需要先找到焦点窗口,然后选择其选项卡:

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);

答案 1 :(得分:0)

在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);  

它应该有用!