2012-10-16 40 views
0

我剛開始構建Chrome擴展,但我不確定一切是如何工作的。 我想在一個方法(getTabs)中獲取一串數據,然後將其返回給調用它的方法。 此代碼調用getTabs,它創建一個字符串並嘗試返回它。如何在Chrome擴展中的函數之間發送變量?

function emailTabs() { 
chrome.tabs.getAllInWindow(null, getTabs); 
console.log(data); //this is never able to access the string 
} 

function getTabs(tabs) { 
    var data=''; 
    //build up data... 
    console.log(data); //this works when there's no anonymous function 
    return data; 
} 

如何將該字符串返回到emailTabs中?

回答

2

假設getTabs回報的東西,你可以在getAllInWindow創建一個匿名函數來對其進行更多的控制,那麼像這樣的東西搭上值:

function emailTabs() { 
    chrome.tabs.getAllInWindow(null, function(tabs){ 
     var str = getTabs(tabs); 
     // some code using the string 
    }); 
} 
+0

感謝。但是當我嘗試訪問數據時,它只是顯示爲「Object object」,所以它仍然沒有得到值。 –

+0

我更新了我的答案,基本上你需要函數「getTabs」先返回一些東西,然後你將能夠捕獲並賦值getAllInWindow回調(第二個參數) –

+0

謝謝。它仍然無法正常工作,因爲當我將其更改爲匿名函數時,getTabs最終無法從getAllInWindow獲取所需的選項卡。我會想出一些東西。 –

相關問題