Estoy usando html5 para crear la funcionalidad de carga de imágenes arrastra y suelta. Esto funciona muy bien en Firefox, pero en Chrome, el evento de carga de la imagen solo se dispara por primera vez. Si arrastro varias imágenes solo en las primeras obras, si lo arrastro, falla. Creo que el problema es con la carga de la imagen.imagen, el evento onload no funciona en cromo
aquí es la forma en que mi código funciona He quitado las secciones irrelevantes:
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);
¿alguien sabe por qué esto funciona en Firefox, pero no cromo?
¿No debería definir el proceso de carga de la imagen antes de hacer la llamada para asegurarse de que la llamada no se produce antes de la evento de carga está registrado? – epascarello
@epascarello Gracias por la respuesta, olvidé agregar esta pieza de código que sigue al resto. el img.src se cambia en el procesoSiguienteFunction – Early73