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èscodeAddress()
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?
Vous devez vous connecter pour publier un commentaire.
window.onload = codeAddress;
travail - voici une démo, et le code complet:HTML:
HTML:
Plutôt que d'utiliser jQuery ou d'une fenêtre.onload, JavaScript natif a adopté certaines fonctions depuis la version de jQuery. Tous les navigateurs modernes ont maintenant leurs propres DOM prêt à fonctionner sans l'utilisation d'une bibliothèque jQuery.
Je le recommande si vous utilisez Javascript natif.
false
faire?)window.onload
?window.onload
window.onload
ne peut être définie qu'une seule fois. Si vous souhaitez exécuter deux fonctions à la charge avecwindow.onload
, la seconde pour remplacer la première.Prendre Darin réponse mais jQuery style. (Je sais que l'utilisateur l'a demandé pour le javascript).
l'exécution de violon
De solutions de rechange. Je préfère ce pour la brièveté et la simplicité du code.
C'est une fonction anonyme, d'où le nom n'est pas spécifié.
Ce qui se passe ici est que, la fonction est définie et exécutée ensemble.
Ajoutez à cela le début ou la fin du corps, en fonction de si c'est pour être exécuté avant le chargement de la page, ou peu après, tous les éléments HTML sont chargés.
window.onload = function() {
... etc. n'est pas une grande réponse.Il en sera probablement de travail, mais aussi de casser tout les autres fonctions déjà accrocher à cet événement. Ou, si une autre fonction crochets dans ce cas après le vôtre, il va se casser la vôtre.
Ainsi, vous pouvez passer beaucoup d'heures plus tard, en essayant de comprendre pourquoi quelque chose n'est pas plus.
Une plus forte réponse ici:
Un peu de code que je l'utilise, j'ai oublié où je l'ai trouvé à donner à l'auteur de crédit.
Espère que cela aide 🙂
onload
utilisationPrendre un coup d'oeil à la domReady script qui permet la mise en place de multiples fonctions à exécuter lorsque le DOM est chargé. C'est fondamentalement ce que le Dom prêt dans de nombreux populaire, les bibliothèques JavaScript, mais il est léger et peut être pris et ajouté au début de votre fichier de script externe.
Exemple d'utilisation
fenêtre.onload fonctionne comme ceci:
JS:
HTML:
Essayer readystatechange
où les états sont les suivants:
DOMContentLoaded
window.onload
HTML:
Si vous voulez exécuter une fonction lorsque le corps de la charge. Au lieu de donner un attribut onload de la balise body, vous pouvez faire comme ceci.
JS:
HTML: