Comment faire pour exécuter une fonction lorsque la page est chargée?

Je veux exécuter une fonction lorsque la page est chargée, mais je ne veux pas l'utiliser dans le <body> tag.

J'ai un script qui s'exécute si je l'initialiser dans le <body>, comme ceci:

function codeAddress() {
  //code
}
<body onLoad="codeAddress()">

Mais je veux l'exécuter sans le <body onload="codeAddress()"> et j'ai essayé beaucoup de choses, comme par exemple ce:

window.onload = codeAddress;

Mais ça ne fonctionne pas.

Alors, comment puis-je exécuter au chargement de la page?

  • Exécutez-vous window.onload = codeAddress après codeAddress() est-elle définie? Si oui, cela devrait fonctionner. Êtes-vous sûr qu'il n'est pas une erreur d'ailleurs?
  • Cela n'a aucun sens. de la fenêtre.onload s'exécute après le chargement de la page et tous les javascript est disponible, de sorte que le codeAddress() la fonction peut être déclarée n'importe où dans la page, ou lié js fichiers. Il n'a pas à venir avant que s'il est appelé pendant le chargement de la page elle-même.
  • Oui, c'est fait. Jetez un oeil à jsfiddle.net/HZHmc. Il ne fonctionne pas. Mais si vous déplacez la fenêtre.onload d'après la définition: jsfiddle.net/HZHmc/1 il ne fonctionne pas.
  • Une déclaration de fonction est généralement hissé au-dessus de la portée, de sorte que la fonction peut être déclarée nulle part, en un lieu accessible à la portée.
  • En fait, hmm. Si la fonction est déclarée dans la balise head, puis la fenêtre.onload fonctionne très bien. Cependant, si la fonction est déclarée plus tard (par exemple, la balise "body"), alors il ne sera pas. Mes excuses, bien que j'ai été partiellement correcte. Si le codeAddress fonction n'est pas déclarée dans la tête, alors que pourrait être le problème.
  • dans votre premier exame, il ne fonctionne pas parce que c'est une expression de fonction qui n'est pas levé. Changer pour une déclaration de fonction (la fonction func() {}) et cela fonctionne.
  • Merci de poster votre code complet. Comme Darin et je l'ai dit (ignorer les autres), cela devrait fonctionner. Il doit y avoir une erreur d'ailleurs si ça ne fonctionne pas.
  • Oui, je suis conscient de cela, je viens de prouver le point "de la fenêtre.onload s'exécute après le chargement de la page et tous les javascript est disponible, de sorte que le codeAddress() la fonction peut être déclarée n'importe où dans la page, ou lié js fichiers." n'est pas vrai.
  • Voir ma deuxième remarque. J'ai testé de mettre la fenêtre.onload dans une balise script dans la balise head, et placé à l'avant de la fonction qu'il appelait. Il a bien fonctionné. Il n'était pas jusqu'à ce que je l'ai mis plus bas dans le corps que j'ai constaté qu'il ne fonctionnait pas. Je me suis trompé sur cette note, mais je ne pense toujours pas que la réponse ci-dessus est complètement droit.
  • tous les navigateurs populaires peut afficher les erreurs javascript - avez-vous un?