Domanda

Ho una galleria che ho rapidamente codificato per un piccolo sito e in Firefox 3 e Safari 3 funziona bene. Ma quando provo sul mio vecchio migliore amico IE7, sembra non sparare imageVar.onload = function () {// codice qui} .. che voglio usare per fermare l'effetto di caricamento e caricare l'immagine.

Per favore, tieni a mente ...

  • So che le anteprime sono solo versioni ridimensionate delle immagini più grandi. Quando le immagini saranno finalizzate dal cliente, creerò le miniature appropriate.
  • Questo è il mio primo tentativo di provare a uscire da JavaScript procedurale per la maggior parte .. quindi, per favore, andate piano e fatemi sapere dove fa schifo il mio codice!
È stato utile?

Soluzione

Per un uso corretto di Image.onload, è necessario registrare il metodo del gestore eventi prima di impostare l'attributo src.

Informazioni correlate in questa domanda:

Callback Javascript per caricamento immagini

Altri suggerimenti

Il supporto degli eventi cross-browser non è così semplice a causa delle differenze di implementazione. Dato che stai usando jQuery sul tuo sito, stai meglio usando i suoi metodi di eventi per normalizzare il supporto del browser:

anziché:

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

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

fare:

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

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

Solo per aggiungere al suggerimento di Eran di utilizzare i gestori di eventi integrati di jQuery è possibile eseguire il codice quando il documento viene caricato e il DOM viene creato ma prima che le immagini vengano scaricate con:

$(document).ready(function(){
   //your code
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top