我正在构建一个扩展名为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