使用chrome.tabs.query查找当前选项卡url并存储在全局变量中

使用chrome.tabs.query查找当前选项卡url并存储在全局变量中,url,google-chrome-extension,tabs,Url,Google Chrome Extension,Tabs,我的程序应该获取当前打开的选项卡的URL,并将其存储在一个变量中,以便稍后进行操作。我将结果打印到一个组件中进行调试 var url = "url not set"; // finds active tab url chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function(tabs) { //document.getElementById("basicUsage&

我的程序应该获取当前打开的选项卡的URL,并将其存储在一个变量中,以便稍后进行操作。我将结果打印到一个组件中进行调试

var url = "url not set";    

// finds active tab url
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function(tabs) 
{
   //document.getElementById("basicUsage").innerHTML = url;  output 1
   url = tabs[0].url;   
   //document.getElementById("basicUsage").innerHTML = url;  output 2
}); 
//document.getElementById("basicUsage").innerHTML = url;     output 3
只有输出2未注释(如预期)时打印URL,但只有输出3未注释时输出为“URL未设置”。新的URL保存在全局变量中,所以我不明白为什么当该行在chrome.tabs.query之外时它不会输出

chrome.tabs.query函数中使用的变量是正确的(我使用输出1检查了它)


程序似乎“忽略”了整个函数。

Chrome extensions API的可能副本是异步的。有关说明和解决方案,请参见链接主题。