gpt4 book ai didi

javascript - 图像,onload 事件在 chrome 中不起作用

转载 作者:太空狗 更新时间:2023-10-29 13:47:43 25 4
gpt4 key购买 nike

我正在使用 html5 创建拖放图像上传功能。这在 firefox 中对我很有用,但在 chrome 中,图像加载事件只在第一次触发。如果我只在第一个作品中拖动多个图像,如果我在其中拖动第二个作品,它就会失败。我相信问题出在图片加载上。

这是我的代码的工作方式,我删除了不相关的部分:

            var img = document.createElement("img");
var reader = new FileReader();
var canvas = document.createElement("canvas");
var canvasData;
var ctx = canvas.getContext("2d");
var myFiles;
var i = 0;


reader.onload = (function (aImg)
{
return function (e)
{
aImg.src = e.target.result;
};
})(img);

img.onload = function (){

//resizes image
//draws it to the canvas
//posts to server

i++;
if(i < myFiles.length){
processNext(i);
}
}



function processNext(filei) {

var file = myFiles[filei];

img.file = file;

reader.readAsDataURL(file);


}

i = 0;
myFiles = files;
processNext(0);

有谁知道为什么这适用于 firefox 而不是 chrome?

最佳答案

来自 chromium tracker 的解释:

This is not a bug. WebKit is just more strict. You must instantiate a new Image() object before the replacement, like this:

var photo = document.getElementById('image_id');
var img = new Image();
img.addEventListener('load', myFunction, false);
img.src = 'http://newimgsource.jpg';
photo.src = img.src;

来源:http://code.google.com/p/chromium/issues/detail?id=7731#c12

关于javascript - 图像,onload 事件在 chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5820209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com