fileReader.readAsText()javascript:结果未显示
我正在做一个html项目,在这个项目中,用户上传一个txt文件,对其内容进行进一步处理,并显示结果。上载和处理步骤工作正常,但不知何故,结果从未显示出来。(对我来说)令人困惑的是,如果我在处理和结果表示之间添加一个alert(),那么结果就会正确显示 这是我遗漏的已知问题吗 在下面的代码示例中,如果删除警报()上的注释,结果将正确显示在“演示”段落中。但是没有它,什么也看不出来 如果能为我的错误做出解释或提供替代方案,我将不胜感激 多谢各位fileReader.readAsText()javascript:结果未显示,javascript,html,file-upload,Javascript,Html,File Upload,我正在做一个html项目,在这个项目中,用户上传一个txt文件,对其内容进行进一步处理,并显示结果。上载和处理步骤工作正常,但不知何故,结果从未显示出来。(对我来说)令人困惑的是,如果我在处理和结果表示之间添加一个alert(),那么结果就会正确显示 这是我遗漏的已知问题吗 在下面的代码示例中,如果删除警报()上的注释,结果将正确显示在“演示”段落中。但是没有它,什么也看不出来 如果能为我的错误做出解释或提供替代方案,我将不胜感激 多谢各位 函数myFunction(){ var x=docu
函数myFunction(){
var x=document.getElementById(“文件”);
var textfromfileload=“”;
如果(x.value!=“”){//文本上载
var file=x.files[0];
var fileReader=newfilereader();
fileReader.onload=函数(fileLoadedEvent){
textFromFileLoaded=fileloadevent.target.result;
}
readAsText(文件,“UTF-8”);
}
//警告(“somth”);//这里
document.getElementById(“demo”).innerHTML=textFromFileLoaded;
返回true;
}
选择要上载的文件:
按钮
您应该将document.getElementById(“demo”).innerHTML=textfromfileload代码>在onload函数中
fileReader.onload = function(fileLoadedEvent) {
textFromFileLoaded = fileLoadedEvent.target.result;
document.getElementById("demo").innerHTML = textFromFileLoaded;
}
是异步的,因此当您添加警报时,在将文本添加到demo元素之前,您会给代码足够的时间来调用onload。在没有警报的情况下,将其添加到演示元素时,不会设置(从onload函数)已加载的textfromfileload