3

私はGoogleChromeブラウザーを使用しており、コンソールで次のコードを実行します。これは機能しているようですが、スクリプトで実行すると機能しません。

reader = new FileReader();
reader.readAsDataURL($("input[name='image']")[0].files[0]);
alert(reader.result)
somevarname=reader.result

コンソールには結果がデータURLとして表示されますが、スクリプトではjavascriptは結果を変数に割り当てず、アラートは空白の文字列です。私は何が間違っているのですか?

4

1 に答える 1

7

FileReader は非同期であるため、スクリプトでは結果は後で設定されます

alert(reader.result)
somevarname=reader.result

実行されます。onload結果を取得するには、FileReaderのプロパティを使用する必要があります。
例:

var reader = new FileReader();
//This function will execute when the reader is done
reader.onload = function(){alert(this.result);};
reader.readAsDataURL($("input[name='image']")[0].files[0]);

優れた HTML5 ファイル API チュートリアルについては、HTML5 Rocksにアクセスしてください。

于 2011-07-23T02:15:08.203 に答える