2011-07-22 86 views
3

我使用谷歌Chrome瀏覽器,我運行在控制檯,它似乎工作下面的代碼,但是當我在腳本中運行它,它不HTML5的FileReader問題

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

控制檯秀結果作爲數據url,但在腳本中,javascript不會將結果分配給變量,並且警報是空白字符串。我究竟做錯了什麼?

回答

7

的的FileReader是異步的,所以在腳本結果

alert(reader.result) 
somevarname=reader.result 

執行後置。 您必須使用FileReader的onload屬性才能獲得結果。
例子:

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