我無法設法在onload函數中同時獲得filereader的結果和一些參數。這是我的代碼:帶有結果和參數的FileReader onload
控制的HTML:
<input type="file" id="files_input" multiple/>
JavaScript函數:
function openFiles(evt){
var files = evt.target.files;
for (var i = 0; i < files.length; i++) {
var file=files[i];
reader = new FileReader();
reader.onload = function(){
var data = $.csv.toArrays(this.result,{separator:'\t'});
};
reader.readAsText(file);
}
}
添加事件:
files_input.addEventListener("change", openFiles, false);
我使用filereader.result
,在onload
功能。如果我爲這個函數使用參數,比如文件,我不能再訪問結果。例如,我想在onload函數中使用file.name
。如何解決這個問題?
它用一個文件工作?嘗試創建不同的閱讀器,添加「var reader = new FileReader();」 – 2014-12-12 08:03:39
使用一個簡單的規則:在閉包的開始聲明所有的局部變量。不要在'for','in'和其他類似的語句中聲明它們,因爲這些語句不會創建閉包,因此聲明的變量對語句而言不是本地的。這將幫助您確定何時需要創建額外的關閉。 – hon2a 2014-12-18 10:51:05