425 votes

Exécuter Le Code Javascript Lorsque La Page Est Entièrement Chargée

J'ai besoin d'exécuter du javascript lorsque la page est entièrement chargée. Cela inclut des choses comme des images.

Je sais que vous pouvez vérifier si le DOM est prêt, mais je ne sais pas si c'est le même que lorsque la page est complètement chargée.

629voto

Matchu Points 37755

Qui est le onload. Il est venu waaaaay avant DOM prêt a été autour, et DOM prêt a été effectivement créé pour la raison exacte onload attendu sur les images.

window.onload = function () { alert("It's loaded!") }

35voto

geocar Points 5915

Habituellement, vous pouvez utiliser window.onload, mais vous pouvez remarquer que les navigateurs récents ne pas le feu window.onload lorsque vous utilisez l'arrière/en avant l'histoire des boutons.

Certaines personnes suggèrent étranges contorsions pour contourner ce problème, mais vraiment, si vous venez de faire une window.onunload gestionnaire (même celui qui ne fait rien), ce comportement de mise en cache est désactivé dans tous les navigateurs. Le MDC documents de cette "fonctionnalité" assez bien, mais pour quelque raison il y a encore des gens à l'aide de setInterval et d'autres bizarre hacks.

Certaines versions de l'Opéra, il a un bug qui peut être contourné par adjonction, quelque part dans votre page:

<script>history.navigationMode = 'compatible';</script>

Si vous êtes juste essayer d'obtenir une fonction javascript appelée une fois par vue (et pas nécessairement après le DOM est fini de charger), vous pouvez faire quelque chose comme ceci:

<img src="javascript:location.href='javascript:yourFunction();';">

Par exemple, j'utilise cette astuce pour le chargement d'un fichier très volumineux dans le cache sur un écran de chargement:

<img src="bigfile"
onload="this.location.href='javascript:location.href=\'javascript:doredir();\';';doredir();">

27voto

J Nelson Points 81

Essayez ce code

document.onreadystatechange = function () {
  if (document.readyState == "interactive") {
    initApplication();
  }
}

visite https://developer.mozilla.org/en-US/docs/DOM/document.readyState pour plus de détails

9voto

codefly Points 198

de la fenêtre.événement onload le feu quand tout est chargé, y compris les images, etc.

Vous pouvez vérifier les DOM état prêt si vous vouliez que votre code js pour exécuter le plus tôt possible, mais vous avez encore besoin d'accéder à des éléments du DOM.

8voto

Marc Novakowski Points 22611

Vous pouvez utiliser la fenêtre.onload, comme les docs indiquer qu'il n'est pas tiré jusqu'à ce que le DOM est prêt et TOUS les autres actifs de la page (images, etc.) sont chargés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X