Le code du script javascript dans la page Web doit souvent être exécuté après le chargement du document. Sinon, l'objet risque de ne pas être obtenu. Afin d'éviter cette situation, vous pouvez utiliser les deux méthodes suivantes :
.1. Placez le code du script à l'extrémité inférieure de la page Web, de sorte que lors de l'exécution du code du script, vous puissiez vous assurer que l'objet à utiliser a été chargé.
2. Exécutez le code du script via window.onload.
La première méthode semble compliquée (en fait, elle est recommandée). Nous devons souvent placer le code du script à un endroit plus approprié, donc la méthode window.onload est un meilleur choix. window.onload est un événement. Cet événement sera déclenché lors du chargement du document. Vous pouvez enregistrer un gestionnaire d'événement pour cet événement et mettre le code du script à exécuter dans le gestionnaire d'événement. De cette façon, vous pouvez éviter de ne pas obtenir l'objet. . Regardons d'abord un exemple de code :
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <title>window.onload用法</title> <style type="text/css"> #bg{ width:100px; height:100px; border:2px solid red; } </style> <script type="text/javascript"> document.getElementById("bg").style.backgroundColor="#F90"; </script> </head> <body> <div id="bg"></div> </body> </html>
L'intention initiale du code ci-dessus est de définir la couleur d'arrière-plan du div sur #F90, mais il n'obtient pas cet effet car le code est exécuté séquentiellement lorsqu'il est exécuté sur document.getElementById(" #bg").style. Lorsque backgroundColor="#F90" est écrit, cet objet div n'a pas encore été chargé, le réglage ne peut donc pas réussir. Le code est modifié comme suit :
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <title>位置高度div垂直居中</title> <style type="text/css"> #bg{ width:100px; height:100px; border:2px solid red; } </style> <script type="text/javascript"> window.onload=function(){ document.getElementById("bg").style.backgroundColor="#F90"; } </script> </head> <body> <div id="bg"></div> </body> </html>
La raison est que le code pour définir la couleur d'arrière-plan est placé dans la fonction de traitement d'événements de window.onload. Ce n'est que lorsque le document est chargé que la fonction de traitement d'événements et le code de script pour définir la couleur d'arrière-plan seront exécutés.
Liaison de la fonction du gestionnaire d'événements :
Méthode 1 :
window.onload=function(){}, dans le code ci-dessus, cette méthode est utilisée pour lier la fonction de traitement d'événement à l'événement window.onload. Ce qui est lié ici est une fonction anonyme. les fonctions peuvent également être liées, l'exemple de code est le suivant :
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <title>window.onload用法详解</title> <script type="text/javascript"> window.onload=function myalert() { "); } </script> </head> <body> </body> </html>
Le code ci-dessus peut lier la méthode myalert à l'événement window.onload, mais ne peut pas lier plusieurs gestionnaires d'événements à cet événement de la manière suivante :
window.onload=fonction a(){}
window.onload=fonction b(){}
Le code ci-dessus ne peut pas lier plusieurs fonctions de gestion d'événements à l'événement window.onload, mais la dernière écrasera toutes les fonctions précédentes. Mais le code peut être modifié :
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <title>window.onload用法</title> <style type="text/css"> #bg{ width:100px; height:100px; border:2px solid red; } </style> <script type="text/javascript"> window.onload=function(){ function a(){ document.getElementById("bg").style.backgroundColor="#F90"; } function b(){ document.getElementById("bg").style.width="200px"; } a(); b(); } </script> </head> <body> <div id="bg"></div> </body> </html>
Le code ci-dessus obtient le même effet en liant plusieurs fonctions de traitement d'événements.
Méthode 2 :
Vous pouvez utiliser addEventListener() et attachEvent() pour lier les fonctions de traitement d'événements à l'événement onload. Les éléments suivants sont présentés respectivement :
addEventListener() est la méthode standard actuelle pour lier les fonctions de traitement d'événements, mais les navigateurs IE8 et inférieurs ne prennent pas en charge cette méthode. Les exemples sont les suivants :
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <title>window.onload用法</title> <style type="text/css"> #bg{ width:100px; height:100px; border:2px solid red; } </style> <script type="text/javascript"> window.addEventListener("load",bg,false); window.addEventListener("load",changeW,false); function bg(){ document.getElementById("bg").style.backgroundColor="#F90"; } function changeW(){ document.getElementById("bg").style.width="200px"; } </script> </head> <body> <div id="bg"></div> </body> </html>
Le code ci-dessus peut lier plusieurs gestionnaires d'événements à l'événement window.onload. Une brève introduction au format de syntaxe :
addEventListener("type", nom de la fonction, false)
La fonction addEventListener() a trois paramètres. Le premier paramètre est le type d'événement. Il est à noter qu'il ne peut pas y avoir de on devant le nom du type d'événement. Par exemple, l'événement window.onload ne peut être écrit que comme. charger à cet endroit. Le deuxième paramètre est le nom de la fonction à lier, et le troisième paramètre est généralement faux.
Utilisez la fonction attachEvent() pour lier la fonction de traitement d'événement :
Les navigateurs IE antérieurs à IE9 ne prennent pas en charge la fonction addEventListener(), donc la fonction attachEvent() entre en jeu. L'exemple de code est le suivant :
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <title>window.onload用法</title> <style type="text/css"> #bg{ width:100px; height:100px; border:2px solid red; } </style> <script type="text/javascript"> window.attachEvent("onload",bg); window.attachEvent("onload",changeW); function bg(){ document.getElementById("bg").style.backgroundColor="#F90"; } function changeW(){ document.getElementById("bg").style.width="200px"; } </script> </head> <body> <div id="bg"></div> </body> </html>
L'effet du code ci-dessus est le même que celui de l'utilisation de la fonction addEventListener(). Présentons brièvement le format de syntaxe :
.addEventListener("type", nom de la fonction)
Cette fonction n'a que deux paramètres. Le premier paramètre est le type d'événement, mais il a la même fonction que le premier paramètre de addEventListener(), mais le nom est différent. Le nom est "on" devant. Le premier paramètre est le nom de la fonction du gestionnaire d'événements à lier. Afin d'être compatible avec différents navigateurs, le code ci-dessus doit être modifié. Les exemples sont les suivants :
.<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <title>window.onload用法</title> <style type="text/css"> #bg{ width:100px; height:100px; border:2px solid red; } </style> <script type="text/javascript"> if(window.addEventListener){ window.addEventListener("load",bg,false); window.addEventListener("load",changeW,false); } else{ window.attachEvent("onload",bg); window.attachEvent("onload",changeW); } function bg(){ document.getElementById("bg").style.backgroundColor="#F90"; } function changeW(){ document.getElementById("bg").style.width="200px"; } </script> </head> <body> <div id="bg"></div> </body> </html>
Le code ci-dessus résout les problèmes de compatibilité des principaux navigateurs. Utilisez le code suivant pour juger dans le code ci-dessus :
if(object.addEventListener){ object.addEventListener(); } else{ object.attachEvent(); }
Utilisez l'instruction if pour déterminer si l'objet possède l'attribut addEventListener. Si tel est le cas, utilisez la fonction addEventListener(), sinon utilisez la fonction attachEvent()