我已经想通了FileReader API如何设置事件。使用FileReader的主要过程通过创建FileReader,然后声明其任何/所有事件,如下面显示的onload或onloadend事件来工作。这个过程也可以被压缩成一个主要功能。
function readFile(file) {
var audioSrc;
audioSrc = $('.file-playlist table tr:nth-child(' + n + ') td:first-child');
var progress = $('.file-playlist table tr:nth-child(' + n + ') td:last-child progress');
n++;
progress.removeAttr('value');
progress.attr('data-mod', 'true');
var reader = new FileReader();
reader.onload = (function(file) {
return function(e) {
audioSrc.attr('data-src', e.target.result);
$('.file-playlist audio source').attr('data-src', e.target.result);
progress.attr('value', '100');
console.log('onload stage finished');
};
})(file);
reader.onloadend = (function() {
audioSrc.text(file.name);
});
reader.readAsDataURL(file);
}
的功能的工作原理是创建的FileReader,然后通过返回函数声明其的onload事件,并且读取器由在函数结束在数据读出通过使用readAsDataURL()方法给定内容,在这种情况下。