我正在尝试创建一个返回当前标签页面的函数:
function tabURL() {
var url="";
chrome.tabs.getSelected(null, function(tab) {url = tab.url;});
return url;
}
我用的时候:
chrome.tabs.getSelected(null, function(tab) {alert(tab.url);});
Chrome会显示网址,但如果我在Chrome控制台中使用我的功能,则该功能会返回“” .
有没有办法将tab.url传递给变量然后返回此变量?
1 回答
chrome.tabs.getSelected
是 asynchronous . 这意味着当调用回调函数时,return url
"has already occurred" .你有两个选择来达到预期的效果 .
正确地重写代码,以正确实现异步方面(具体细节取决于扩展的实现) .
请注意
getSelected
已被deprecated替换为自Chrome 16以来的chrome.tabs.query .使用chrome.tabs.onUpdated(添加tabID URL),chrome.tabs.onRemoved(删除过时的条目)和chrome.tabs.onActivated(设置当前活动选项卡)使用当前URL维护哈希 .
代码为2: