我試圖在使用javascript上傳之前將圖像加載到頁面以進行預覽。文件讀取器在javascript中執行多次
我已經以下代碼:
holder.onclick = function(event) {
function chooseFile(name) {
var chooser = $(name);
chooser.unbind('change');
chooser.change(function(evt) {
function loadFile(file, callback) {
var reader = new FileReader();
(reader.onload = function(file) {
console.log(f);
var output = document.createElement('input');
output.type = 'image';
output.classList.add('image-responsive');
output.classList.add('col-xs-12');
output.name = f;
output.id = f;
output.src = reader.result;
var x = document.getElementById('OrigName');
x.appendChild(output);
return callback(output);
})(f = file.name);
reader.readAsDataURL(file);
}
for (var i = 0; i < evt.target.files.length; i++) {
console.log(i);
var file = evt.target.files[i];
loadFile(file, function(output) {
// console.log(output);
});
}
});
chooser.trigger('click');
}
chooseFile('#fileDialog');
}
問題是,每當我加載圖像,reader.onload方法內執行代碼兩次,並在控制檯I 2倍的console.log(f)和2個錯誤的結果是'localhost/null未找到'。
當我刪除(f = file.name),腳本執行它應該是,但然後我沒有file.name變量裏面的讀者範圍。
編輯:
這裏是我的問題的jsfiddle:
https://jsfiddle.net/onedevteam/udmz34z0/6/
有人可以幫我解決這個問題?
你可以分享可執行的演示/片段或[JSFiddle](https://jsfiddle.net/)嗎? – Rayon