Estoy tratando de escribir un script JS que mirará a través de la página cuando se cargue para ver si alguna imagen tuvo un error al cargar, y para cambiar el src de esa imagen a una imagen predeterminada. Lo que estaba tratando de hacer era recorrer toda la lista de imágenes devueltas desde document.images , y verificar cada imagen para ver si terminó de cargarse usando image[i].complete , y si no lo hizo, luego cambie el src de esa imagen al enlace predeterminado. No funcionó para mí, y no puedo pensar en la solución.
window.onload = function() { var images = document.images; for (var i = 0; i < images.length; i++) { if (!image[i].complete) { images[i].src = 'assets/default-avatar.jpg'; } } }La solución es usar el evento de error en las etiquetas IMG:
<img src="..." onerror="this.src = 'default_image_url';">Debido a que complete devuelve true incluso si la imagen no se pudo cargar (al menos en algunos navegadores), podría usar naturalWidth . Si no se carga ninguna imagen, naturalWidth es 0 .
window.onload = function() { var images = document.images; for (var i = 0; i < images.length; i++) { if (image[i].naturalWidth === 0) { images[i].src = 'assets/default-avatar.jpg'; } } }