2011-06-26 11 views
1

2秒ごとにタブURLを通知するコードを書いています。しかし、私はポップアップのためにこれを行うことができません。私がポップアップを開くたびに;タブのURLはポップアップではなくバックグラウンドページのURLです。クロムポップアップのURLを取得する

ポップアップのURLをcromeで取得するにはどうすればよいですか?

content_script.jsまたはpopup.htmlで
<script> 
var seconds = 2*1000; 
setInterval(function(){ 
    chrome.tabs.getSelected(null, function(tab) { 
     tabId = tab.id; 
     tabUrl = tab.url; 
     alert(tabUrl); 
}); 
},seconds); 
</script> 
</head> 
+1

- 拡張機能のポップアップやポップアップウィンドウを? – serg

+0

私は、ポップアップウィンドウ – user782400

答えて

0

:それが動作するはずです

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

chrome.extension.onRequest.addListener(onRequest); 

:background.htmlで

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

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

+0

はクリックリスナーではないはずですか?今すぐリンクをクリックするとそれは警告なしを示します – user782400

+0

いいえあなたsetTimeout機能のget_urlInfo()を呼び出してください。 – user278064

1

hereが説明したように、あなたが、選択された1つの必要はありません「現在」のウィンドウに代わりwindowIdchrome.tabs.getSelected()に、デフォルトのnullを渡す:

現在のウィンドウには、コードを含むウィンドウであります現在実行中です。これは、最前面またはフォーカスされたウィンドウとは異なる可能性があることを認識することが重要です。

は、だから、最初にフォーカスされたウィンドウを見つける必要があり、その後、その選択したタブを取得:

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); 
あなたが意味するか、ポップアップ