2010-03-26 5 views
3

J'ai une page en cours de chargement dans un .

A l'intérieur du , j'ai une fonction qui attend patiemment la page pour charger en utilisant l'événement $(window).load() jQuery qui est censé attendre tout le contenu de la page (images, javascript, css, etc.) est chargé avant le tir.

La fonction rappelle alors la page en chargeant le en utilisant postMessage pour renvoyer la hauteur du contenu dans le .

J'ai testé la fonctionnalité dans IE7, IE8, Firefox 2, Firefox 3, Opera et Chrome et tout fonctionne bien. Lorsque j'essaie de charger la page dans Safari, la fonction renvoie son rappel avant le chargement des images ... ce qui me donne une mauvaise hauteur de page.

Est-ce que quelqu'un sait comment forcer Safari à attendre que les images soient chargées avant d'appeler une fonction (les solutions jQuery sont préférables dans ce cas)?

Répondre

5

La recherche d'un safari de forces de décalage pour terminer le chargement/la mise en page du contenu bloque le javascript jusqu'à la fin du retour. Vous pouvez l'utiliser comme ceci:

$(window).load(function() { 
    var block = document.body.offsetWidth; 
    //Rest of code... 
}); 
Questions connexes