我的HTML输入文件中的内容在哪里消失了?

时间:2012-06-20 04:12:19

标签: javascript html5 function javascript-events

尝试通过HTML FileReader从文件中导入一些字符串对我来说开始变得痛苦。通过测试,主要功能内的警报显示事件完成后消失的内容。 请赐教。

<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 个答案:

答案 0 :(得分:1)

FileReader对象允许Web应用程序异步读取文件的内容。 调用r.readAsText(f)后无法立即获取文件内容 您应该在onloadend evt函数

中处理内容

就像这样

<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>