2008-11-21 6 views
1

J'ai une galerie que j'ai rapidement codée pour un petit site, et sous Firefox 3 et Safari 3 fonctionne très bien. Mais quand je teste sur mon vieux meilleur ami IE7, il semble ne pas tirer le imageVar.onload = function() {// code ici} .. que je veux utiliser pour arrêter l'effet de chargement et charger l'image.JavaScript & IE7 - Pourquoi mon * .onload = function() {} ne se déclenchera-t-il pas?

S'il vous plaît garder à l'esprit ...

  • je sais que les vignettes sont simplement réduites version des images plus grandes. Lorsque les images sont finalisées par le client, je vais créer des miniatures appropriées.
  • Ceci est ma première tentative pour essayer de sortir du JavaScript procédural pour la plupart .. alors s'il vous plaît allez-y doucement et veuillez me faire savoir où mon code est nul!

Répondre

5

Pour une utilisation réussie de l'image .onload, vous devez enregistrer la méthode du gestionnaire d'événements avant de définir l'attribut src.

Informations connexes dans cette question:

Javascript callback for Image Loading

+0

Comment est-ce que je fais ceci? – alex

+0

J'ai ajouté un lien vers la réponse qui contient un exemple d'extrait. – keparo

2

La prise en charge des événements de navigateur croisés n'est pas si simple en raison des différences de mise en œuvre. Puisque vous utilisez jQuery sur votre site, vous feriez mieux d'utiliser ses méthodes d'événements pour normaliser le soutien du navigateur:

au lieu de:

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

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

Do:

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

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

Etrange, une partie de la galerie fonctionne ... en cliquant sur un peu d'image Les vignettes font apparaître l'image à droite, mais pas sur les autres vignettes d'image. Cela semble étrange ou quoi? Merci beaucoup pour votre contribution. – alex

0

Juste pour ajouter à la suggestion faite par Eran à utiliser construit du jQuery dans les gestionnaires d'événements, vous pouvez exécuter du code lorsque le document est chargé et la DOM est créé mais avant que les images ne soient téléchargées avec:

$(document).ready(function(){ 
    //your code 
}); 
+0

Merci, mais j'ai déjà implémenté ceci. – alex

Questions connexes