我写了一段代码,每隔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>
答案 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);
它应该有用!