Filereader不会加载

时间:2018-07-25 13:25:26

标签: javascript filereader

我在函数内部使用了FileReader。它不会加载,并且在初始化时只有空值。有人可以帮忙吗? 当我尝试在main函数之外调用EventListener和uploadFile函数时,代码起作用。在下面的代码中,仅Filereader不会加载。

var main = (function() {
  var canvases;
  var ctxs;
  //...
  function initMain() {
  //...
    $s('#file-input').addEventListener('change', function() {
      uploadFile(this.files);
    }); 
  //...
    canvases = [], ctxs = [];
  }
  //...
  function uploadFile(files) {
    if ( files && files[0] ) {
      canvases[0] = $s('#canvas0');
      ctxs[0] = canvases[0].getContext('2d');
      var freader = new FileReader();
      freader.onload = function(e) {
        var img = new Image();
        img.addEventListener('load', function() {
        ctxs[0].drawImage(img, 0, 0);
      });
      img.src = e.target.result;
      };       
      freader.readAsDataURL( files[0] );
    }
  }
  //...
  function $s(id) {
    if (id.charAt(0) !== '#') return false;
    return document.getElementById(id.substring(1));
  }
  return {
    init: initMain
  };
})();

window.addEventListener('load', main.init);

0 个答案:

没有答案