我有以下代码片段,并且我不清楚如何将它一直传递到onload函数。如何将变量传递给javascript中的回调函数
我试图在不同的地方定义它,但没有成功,特别是因为它的定义需要发生在传递给document.on
方法的函数中,因为我想获得this
引用的保留。
$(document).ready(function(e) {
$(document).on('click', "#someId", function(e) {
e.preventDefault();
var variable = $(this).attr('name');
chrome.fileSystem.chooseEntry({
type: 'openFile', accepts:[{
extensions: ['txt']
}]
},
function(fileEntry) {
if (!fileEntry) {
return;
}
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onload = function(e) {
////******* how to access variable here? *******\\\\
chrome.storage.local.set({'txt': e.target.result});
};
reader.readAsArrayBuffer(file);
});
});
});
});
我需要访问variable
的onload
函数内。 我怎么能通过它?
你不需要传递它。它在外部范围内,因此在范围链中自然可用。 –
@ Beetroot-Beetroot,我在onload函数内部突出显示并寻找变量作用域,并且在那里我看不到变量。另外,当我尝试在控制台中获取值时,我得到ReferenceError:变量未定义 – supercalifragilistichespirali
在这种情况下,我错误地理解了问题,或者您正在运行与上面显示的代码不同的代码。 –