Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这个FileReader onload没有启动?_Javascript_Filereader - Fatal编程技术网

Javascript 为什么这个FileReader onload没有启动?

Javascript 为什么这个FileReader onload没有启动?,javascript,filereader,Javascript,Filereader,我从以下JavaScript代码开始: // Begin File Open Code. function fileOpen() { var fileInput = document.getElementById('fileInput'); var fileDisplayArea = document.getElementById('iDisplay'); fileInput.addEventListener('change', function(e)

我从以下JavaScript代码开始:

  // Begin File Open Code. 
  function fileOpen()
  {

    var fileInput = document.getElementById('fileInput');
    var fileDisplayArea = document.getElementById('iDisplay');

    fileInput.addEventListener('change', function(e)
    {
      file = fileInput.files[0];
      var imageType = /image.*/;
      if (file.type.match(imageType)) 
      {
        var reader = new FileReader();
        reader.onload = function(e)
        {                 
          iDisplay.innerHTML = "";
          image = new Image();
          image.src = reader.result;
          image.id = "I";               // Add an id attribute so the image editor code can access the image.  
          iDisplay.appendChild(image);
          image.onload = function()
          {
            c = document.getElementById("canvas1"); 
            context = c.getContext("2d");
            c.width = image.width; 
            c.height = image.height; 
            context.drawImage(image,0,0);  
          }                
        }
        reader.readAsDataURL(file);             
        moreFiles++;  
        document.getElementById("fileInput").disabled = true; 
        document.getElementById("fileInputD").innerHTML = '<p>Please refresh page to open a new image</p>'; 
      }
      else
      {
        iDisplay.innerHTML = "File type not supported."
      }
  }); 

}
// End File Open Code
在该行之后,函数退出,不加载任何内容。我花了好几个小时研究这段代码的变体,但无法让它越过这条线。所以,我的问题是“为什么?”我应该注意,我希望使用纯JavaScript


提前谢谢你

您还可以使用FileReader.readAsDataURL()从数据库解析文件。这将在内存中创建一个字符串,其中包含图像的base64表示形式

<input type="file" accept="image/*" onchange="loadFile(event)">
<img id="output"/>
<script>
  var loadFile = function(event) {
    var reader = new FileReader();
    reader.onload = function(){
      var output = document.getElementById('output');
      output.src = reader.result;
    };
    reader.readAsDataURL(event.target.files[0]);
  };
</script>


参考:

Chrome73中似乎有一个bug,如果您有一个
调试器
语句,它就不会被触发

我确实有

        reader.readAsText(blob); 
        debugger;
而且它从不点击
onload

如果我把它改成

        debugger;
        reader.readAsText(blob); 
然后它就起作用了


Chrome 75修复。

我正在将图像加载到HTML5画布中。这会作为base64字符串工作吗?是的,它会。参考:这个例子6在这里,我会检查它时,我可以看到直。谢谢注意:我认为这不会解决FIleReader的onload问题。我也遇到了同样的问题,有时工作正常,但有时不工作,甚至
onload()
不会触发任何事件。wooowwwww!!伟大的对这件事生气,你就达到目标了!!谢谢mateI的报告,他们确认了。但它已经修好了——可能是偶然修好的。我会发布链接later@EliasMP你花了多长时间在这一个lol上。我花了几个小时才弄明白它是棱角的,是rxjs,是我的代码。啊!这是在1天x 8小时每天。但我同时在做另一个项目。。。尝试这一次,当我不想继续做我的事情。。。在任何情况下,只要5行代码LOL XD XD就够了
        reader.readAsText(blob); 
        debugger;
        debugger;
        reader.readAsText(blob);