JavaScript e amp; IE7 - Perché il mio * .onload = function () {} non si attiva?
-
08-07-2019 - |
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!
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:
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
});