我正在編寫Chrome擴展。我有以下一段代碼。Chrome擴展中變量範圍的問題
function getCurrentTab() {
var r;
chrome.tabs.query({
active:true,
currentWindow:true
},function (tabs) {
r=tabs[0];
console.log(r);
});
return r;
}
console.log(getCurrentTab());
我希望這個函數返回活動標籤。不幸的是,回調函數內部的歸因不會影響父函數getCurrentTab
中的r,我無法弄清楚原因。
目前,此代碼寫入到控制檯:
undefined
Object {active: true, height: 954, highlighted: true, id: 16, incognito: false…}
期望的結果將是:
Object {active: true, height: 954, highlighted: true, id: 16, incognito: false…}
Object {active: true, height: 954, highlighted: true, id: 16, incognito: false…}
您傳遞給曲線的回調ery函數是異步的,所以直到getCurrentTab返回後,分配纔會發生。 – Jack
任何解決方法? – pandronic
將回調函數傳遞給在查詢回調中調用的getCurrentTab方法,並將'r'作爲參數。 – Jack