2012-06-20 55 views
0

試圖通過HTML FileReader從文件導入一些字符串開始對我來說很痛苦。經過測試,主功能內部的警報顯示事件完成後消失的內容。 請賜教。我的HTML輸入文件中的內容從哪裏消失?

<input type="file" id="Open" /> 
<script type="text/javascript"> 
function readSingleFile(evt) { 
    var f = evt.target.files[0]; 
    var r = new FileReader(); 
    var contents; 
    if (f) { 
     r.onloadend = function(evt) { 
     var contents = evt.target.result.substr(); 
     // this alert show string content 
     alert(contents); 
     } 
     r.readAsText(f); 
    } 
    // there's no string content - (undefined) 
    alert(contents); 
} 
document.getElementById('Open').addEventListener('change', readSingleFile, false); 
</script> 

回答

1

FileReader對象允許Web應用程序異步讀取文件的內容。 你不能獲取文件的內容立即撥打後r.readAsText(F) 你應該onloadendevt功能

就這樣

<script type="text/javascript"> 
    var contents; 

    function readSingleFile(evt) { 
     var f = evt.target.files[0]; 
     var r = new FileReader(); 

     if (f) { 
      r.onloadend = function(evt) { 
      contents = evt.target.result.substr(); 
      // this alert show string content 
      alert(contents); 

      //code for the contents 
      } 
      r.readAsText(f); 
     } 
     // there's no string content - (undefined) 
     //alert(contents); 
    } 
    document.getElementById('Open').addEventListener('change', readSingleFile, false); 
</script> 
+0

現在,我可以從一些其他功能稱之爲「內容」涉及的內容按鈕點擊。但是我需要繼續在下一個功能中繼續使用「內容」數據嗎?從第一個結尾調用下一個函數將不起作用。 – Alex