Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未调用HTML5文件读取器API onload事件_Javascript_Jquery_Html_Filereader - Fatal编程技术网

Javascript 未调用HTML5文件读取器API onload事件

Javascript 未调用HTML5文件读取器API onload事件,javascript,jquery,html,filereader,Javascript,Jquery,Html,Filereader,我试图实现FileReaderAPI来读取音频文件,但脚本从表面上看永远无法达到这一点。我的函数在下面,故障在reader.onload=handleReaderLoad行 function setupFS(file) { console.log('setupFS function entered.'); var reader = new FileReader(); console.log(reader); reader.onload = handleReader

我试图实现FileReaderAPI来读取音频文件,但脚本从表面上看永远无法达到这一点。我的函数在下面,故障在
reader.onload=handleReaderLoad

function setupFS(file) {
    console.log('setupFS function entered.');
    var reader = new FileReader();
    console.log(reader);
    reader.onload = handleReaderLoad;
}

function handleReaderLoad(evt) {
    console.log(reader);
    var audioSrc = $('.file-playlist table tr:nth-child(n+1) td:first-child');
    console.log(audioSrc);
    console.log(reader.readAsDataURL(file));
    audioSrc.attr('data-src', reader.readAsDataURL(file));
}
在控制台中,读卡器与onload事件一起显示为具有
函数handleReaderLoad(evt){
调用,但是
读卡器
audioSrc
读卡器。readAsDataURL(文件)
变量从未记录在控制台中。
我遗漏了什么?

我已经了解了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()
方法读取函数末尾的数据,从而为读取器提供内容