我正在構建一個擴展名爲chrome,並且有一個空變量的數組變量array_out
。我需要在回調函數中使用來自executeScript
內的數組的值填充此數組。executeScript不填充全局變量 - Chrome擴展
但是,出於某種原因全局陣列array_out
沒有被填充,因爲console.log
顯示,可能是因爲chrome函數在我的jQuery之後運行?
任何幫助?
我的代碼如下:
$(document).ready(function(){
var array_out = [];
chrome.tabs.query({currentWindow: true, active: true}, function(tabs) {
chrome.tabs.executeScript(tabs[0].id, {
code: " \
var array_in = ['one', 'two', 'three']; \
"
}, function(result){
array_out = result[0];
console.log('IN: ' + array_out.length);
});
});
console.log('OUT: ' + array_out.length);
});
能否請你告訴我怎麼樣? – gespinha
如果我把'array_out'變量放在'$(document)'函數之外,怎麼辦? – gespinha
你是對的,你也需要這樣做,因爲'array_out'將被用在'document.ready()'之外的函數中。但最初的問題是它沒有被賦予任何價值。這隻能在回調函數中保證,假設'result [0]'具有您想要的值。 – AnthonyDJ