Pregunta

Tengo una galería que codifiqué rápidamente para un sitio pequeño, y en Firefox 3 y Safari 3 funciona bien. Pero cuando pruebo en mi viejo mejor amigo IE7, parece que no dispara imageVar.onload = function () {// code here} .. que quiero usar para detener el efecto de carga y cargar la imagen.

Tenga en cuenta ...

  • Sé que las miniaturas son una versión reducida de las imágenes más grandes. Cuando el cliente finalice las imágenes, crearé las miniaturas adecuadas.
  • Este es mi primer intento de tratar de salir del JavaScript procesal en su mayor parte ... así que por favor, ¡ve con calma y amablemente hazme saber dónde apesta mi código!
¿Fue útil?

Solución

Para un uso exitoso de Image.onload, debe registrar el método del controlador de eventos antes de establecer el atributo src.

Información relacionada en esta pregunta:

Devolución de llamada de JavaScript para la carga de imágenes

Otros consejos

El soporte de eventos de navegador cruzado no es tan sencillo debido a las diferencias de implementación. Como está utilizando jQuery en su sitio, es mejor que utilice sus métodos de eventos para normalizar la compatibilidad del navegador:

en lugar de:

 window.load = function(){ 
      //actions to be performed on window load
 }

 imageViewer.image.onload = function(){ 
     //actions to be performed on image load
 }

Hacer:

$(window).load(function(){ 
    //actions to be performed on window load
});

 $(imageViewer.image).load(function(){ 
      //actions to be performed on image load
 });

Solo para agregar a la sugerencia de Eran de usar los controladores de eventos integrados de jQuery, puede ejecutar el código cuando se carga el documento y se crea el DOM, pero antes de que las imágenes se descarguen con:

$(document).ready(function(){
   //your code
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top