HTML5 FileReader问题

Chr*_*ris 3 javascript google-chrome filereader

我正在使用谷歌浏览器浏览器,我在控制台中运行以下代码,这似乎工作,但当我在脚本中运行它不

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

控制台将结果显示为数据URL,但在脚本中,javascript不会将结果分配给变量,而alert是一个空字符串.我究竟做错了什么?

Dig*_*ane 7

该的FileReader是异步的,所以在脚本结果设置

alert(reader.result)
somevarname=reader.result
Run Code Online (Sandbox Code Playgroud)

被执行.您必须使用onloadFileReader 的属性来获取结果.
例:

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]);
Run Code Online (Sandbox Code Playgroud)

要获得良好的HTML5文件API教程,请转到HTML5 Rocks.