Avec jQuery, nous connaissons tous la merveilleuse .ready()
fonction :
$('document').ready(function(){});
Toutefois, disons que je veux exécuter une fonction écrite en JavaScript standard, sans bibliothèque de soutien, et que je veux lancer une fonction dès que la page est prête à la gérer. Quelle est la bonne façon d'aborder cette question ?
Je sais que je peux le faire :
window.onload="myFunction()";
Ou je peux utiliser le body
étiquette :
<body onload="myFunction()">
Ou bien je peux même essayer en bas de la page après tout, mais la fin body
o html
tag comme :
<script type="text/javascript">
myFunction();
</script>
Quelle est la méthode, compatible avec les navigateurs (anciens et nouveaux), qui permet d'envoyer une ou plusieurs fonctions à la manière de la fonction jQuery ? $.ready()
?
1 votes
La prise en charge des anciens navigateurs est une bonne chose, mais étant donné la vitesse à laquelle la technologie progresse et le fait que les gens semblent rattraper leur retard plus rapidement de nos jours, elle n'est pas nécessaire à 100 %, mais c'est un bon bonus si possible. Dans l'ensemble, j'essaie de comprendre si l'un de ces éléments est la norme dans les navigateurs. Est-ce qu'ils fonctionnent tous ? Le choix du navigateur est-il important ? S'ils fonctionnent tous, quel serait le meilleur choix par rapport aux autres ?
11 votes
Voir ça : stackoverflow.com/questions/799981/
0 votes
@clexmond mettre script en bas vs en haut est quelque chose que j'ai toujours compris pour diverses raisons. J'ai tendance à le placer en bas, dans des fichiers externes ou sur la page elle-même. Mais ces deux dernières années, j'ai été gâté par jQuery et d'autres libraires. Cependant, je suis maintenant dans une sorte de croisade pour essayer de mieux comprendre le javascript par lui-même, sans libraire. Donc, malgré ce que je sais de javascript, cette simple petite chose me déstabilise un peu car je veux m'assurer que tout script que je fais suit une méthodologie compatible avec tous les navigateurs.
4 votes
Vous pouvez consulter les sources de jQuery pour voir comment ils implémentent la fonction "document ready" et travailler à partir de là.
0 votes
@DanA. Bien. Je pense que cela résume un peu la réponse à cette question. Donc JavaScript seul, il n'y a pas de moyen absolu de trouver facilement un état prêt, une sorte de moyen doit être créé pour le supporter à travers les différents navigateurs. Merci d'avoir trouvé cela et de l'avoir clarifié pour moi.
0 votes
@chris, c'est vrai. Je ne connais pas la fonction document.ondoncontentready mentionnée par maxhud, mais si elle devient standardisée, je suppose que c'est l'équivalent de ce que jQuery a maintenant.
0 votes
@DanA. : Je ne vois pas comment ce message répond à la question de la compatibilité entre navigateurs de l'interface utilisateur.
onload
événement debody
ou de placer le script en bas de la page. Je ne suis pas au courant d'un quelconque problème de croisement de navigateurs. Et vous ?0 votes
@amnotiam Non, je pense que onload est assez standard, si vous avez seulement besoin de charger la structure DOM. Ce serait le moyen le plus simple de le faire.
0 votes
@DanA. cela répond à la question de savoir ce que je cherchais plus ou moins en voyant comment jQuery le gère tout autour me dit que malgré le fait que onload soit une méthode semi directe/standard en quelque sorte, cela ne signifie pas qu'elle fonctionnera dans toutes les situations avec tous les navigateurs, en fonction des besoins de la fonction que je veux construire et appeler. Dans l'ensemble, je cherche juste à savoir quand le DOM est entièrement chargé, ce que onload semble couvrir, mais, en même temps, je voulais voir laquelle des méthodes ci-dessus était une façon plus conforme d'aborder la question.