0

以下のコードは、私が現在持っているものです。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);
4

1 に答える 1