以下のコードは、私が現在持っているものです。onload 以外でアラート (reader.result) を実行したいのですが、常に null を返します。readAsText() が呼び出されて終了した後、reader.result はその結果を保持すべきではありませんか?
より具体的に言うと、私の最終的な目標は、ファイル内のテキストを読み取り、それを将来の使用のために変数に保存することです。私はアラートをデバッグツールとして使用しています(おそらく悪いことだと思います)。
<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);