0
下面的代碼是我目前的。我想在onload外部提醒(reader.result),但它總是返回null。 readAsText()被稱爲並且完成後不應該保留它的結果reader.result?JavaScript-get reader.result onload
更具體地說,我的最終目標是讀取文件中的文本,然後將它保存在一個變量中供將來使用。我剛剛使用警報作爲調試工具(可能很糟糕,我知道)。
<input type="file" id="fileinput" />
<script type = "text/javascript" id="00">
var contents = [];
function readAFile(evt)
{
var reader = new FileReader();
var test
var file = evt.target.files[0];
if (file)
{
reader.onload = function (element) {
alert("in onload");
this.result = element.target.result;
alert(reader.result);
};
reader.onerror = function (element) {
alert("reader.onerror called - could not load");
};
reader.readAsText(file);
alert(reader.result);
}
else
{
alert("if(file) returned false - could not load");
}
}
document.getElementById('fileinput').addEventListener('change', readAFile, false);
的FileReader是異步的。所以你在讀取任何內容之前調用alert()。 – Barmar
@Barmar這是我第一次想到的,但是alert(reader.result)返回null在alert(reader.result)內部onload(它返回實際結果)後彈出。據我所知,警報是同步的,因此證實閱讀已經及時完成。 – user2453500
我在Chrome中首先收到空警報。 http://jsfiddle.net/barmar/PkGH4/1/ – Barmar