2010-12-11 2 views
1

J'essaie d'obtenir la hauteur d'une image avec jqueryObtenez hauteur de l'image lors de l'actualisation

$(document).ready(function() { 
    alert($('#image').height()); 
}) 

Très basique. Cependant, je suis confus.
Si j'appuie sur F5 j'obtenir le résultat suivant:
Firefox: 383px
IE 8: 30px
Chrome: 0px

Si je vais à la page via un lien:
Firefox: 383px
IE 8: 383px
Chrome: 383px

383 est évidemment la valeur correcte. Mais pourquoi ai-je la mauvaise valeur lors de l'actualisation?

Répondre

3

document.ready après le chargement du DOM, mais pas nécessairement après le chargement des images et du CSS. Si vous exécutez ce code sur window.onload, vous devriez obtenir des résultats cohérents à travers les navigateurs.

Essayez d'utiliser gestionnaire load jQuery à la place:

$(window).load(function() { 
    alert($('#image').height()); 
}) 
+0

$ (fenêtre) .load sûrement? –

+0

Très bien! Je suppose que l'image a été mise en cache lorsque j'ai suivi un lien et donc il était capable de déterminer la taille dans tous les navigateurs. – Anders

3

Attendez la fin de l'image est complètement chargée

var img = document.getElementById("image"); 
    img.onload = function() { 
    alert($('#image').height()); 
    }; 
+0

IE a quelques problèmes connus avec image.onload: http://stackoverflow.com/questions/198892/img-onload-doesnt-work-well-in-ie7 – Emmett

0
$(document).ready(function() { 

    $('#image').bind("load", function() { 
     alert($('#image').height()); 
    }); 

}) 
Questions connexes