Javascript 为什么这个FileReader onload没有启动?
我从以下JavaScript代码开始: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)
// 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);