Javascript 我的HTML输入文件中的内容在哪里消失了?
试图通过HTML FileReader从文件中导入一些字符串开始让我感到痛苦。经过测试,主函数中的警报显示事件完成后消失的内容。 请开导我Javascript 我的HTML输入文件中的内容在哪里消失了?,javascript,html,function,dom-events,Javascript,Html,Function,Dom Events,试图通过HTML FileReader从文件中导入一些字符串开始让我感到痛苦。经过测试,主函数中的警报显示事件完成后消失的内容。 请开导我 <input type="file" id="Open" /> <script type="text/javascript"> function readSingleFile(evt) { var f = evt.target.files[0]; var r = new FileReader(); var content
<input type="file" id="Open" />
<script type="text/javascript">
function readSingleFile(evt) {
var f = evt.target.files[0];
var r = new FileReader();
var contents;
if (f) {
r.onloadend = function(evt) {
var contents = evt.target.result.substr();
// this alert show string content
alert(contents);
}
r.readAsText(f);
}
// there's no string content - (undefined)
alert(contents);
}
document.getElementById('Open').addEventListener('change', readSingleFile, false);
</script>
函数readSingleFile(evt){
var f=evt.target.files[0];
var r=新文件读取器();
var含量;
如果(f){
r、 onloadend=函数(evt){
var contents=evt.target.result.substr();
//此警报显示字符串内容
警报(内容);
}
r、 readAsText(f);
}
//没有字符串内容-(未定义)
警报(内容);
}
document.getElementById('Open').addEventListener('change',readSingleFile,false);
文件阅读器对象允许web应用程序异步读取文件内容。
调用r.readAsText(f)后无法立即获取文件内容
您应该在onloadend
evt
函数中处理内容
就这样
<script type="text/javascript">
var contents;
function readSingleFile(evt) {
var f = evt.target.files[0];
var r = new FileReader();
if (f) {
r.onloadend = function(evt) {
contents = evt.target.result.substr();
// this alert show string content
alert(contents);
//code for the contents
}
r.readAsText(f);
}
// there's no string content - (undefined)
//alert(contents);
}
document.getElementById('Open').addEventListener('change', readSingleFile, false);
</script>
var含量;
函数readSingleFile(evt){
var f=evt.target.files[0];
var r=新文件读取器();
如果(f){
r、 onloadend=函数(evt){
contents=evt.target.result.substr();
//此警报显示字符串内容
警报(内容);
//内容代码
}
r、 readAsText(f);
}
//没有字符串内容-(未定义)
//警报(内容);
}
document.getElementById('Open').addEventListener('change',readSingleFile,false);
现在我可以通过单击按钮从另一个函数调用“内容”。但我需要继续处理下一个函数中的“内容”数据吗?从第一个函数末尾调用下一个函数将不起作用。