Les événements Interface interactive et événements * Interface interactive = réagir aux actions de l'utilisateur * Capter une action ==> code HTML * Réagir à cette action ==> code JavaScript * Qu'est-ce qu'un événement ? * Généralement, action de l'utilisateur dans la page * Souris, clavier... * Mais aussi, action du navigateur * Chargement d'une page, erreur de téléchargement... * Evénement capté par l'élément HTML qui le subit * <balise onévénement="code JavaScript">...</balise> * Différents types d'événements * Evénements de la souris * Evénements du clavier * Evénements de formulaire * Evénements de page Identification d'un élément HTML * Modification d'un élément HTML ==> identification * <balise id="identifiant" ...>...</balise> * <balise name="identifiant" ...>...</balise> * Accès à l'élément à partir de son identifiant * document.getElementById("identifiant") * document.getElementByName("identifiant") * Utilisation de l'attribut "id" préconisée * Attribut "name" maintenant obsolète * Encore utile pour les formulaires * Dans ce cas, mettre les deux: "id" et "name" * "name" sert pour la soumission du formulaire * Autre possibilité d'accès aux éléments HTML * Images: document.images["identifiant"] * Formulaires: document.forms["identifiant"] Evénements de la souris * Evénements que l'utilisateur déclenche avec la souris * Susceptibles d'être subis par n'importe quel élément visible * Evénements liés à l'action du bouton * mousedown * Déclenché lorsque le bouton de la souris est enfoncé sur un élément * mouseup * Déclenché lorsque le bouton de la souris est relâché sur un élément * click * Déclenché lors d'un clic de la souris (enfoncé puis relâché) sur un élément * dblclick * Déclenché lors d'un double-clic de la souris sur un élément * Evénements liés au déplacement * mouseover * Déclenché lorsque la souris arrive sur un élément * mouseout * Déclenché lorsque la souris sort d'un élément * mousemove * Déclenché lorsque la souris bouge sur un élément Exemple de gestion de la souris <html> <head> <script type="text/javascript"> function danser() { document.images["pingouin"].src = "danse.gif"; } function attendre() { document.images["pingouin"].src = "immobile.gif"; } </script> </head> <body> <img id="pingouin" src="immobile.gif" onmouseover="danser();" onmouseout="attendre();"/> </body> </html> Evénements du clavier * Evénements que l'utilisateur déclenche avec le clavier * Sont subis a priori par les zones de saisie * keydown * Déclenché lorsqu'une touche du clavier est enfoncée * keyup * Déclenché lorsqu'une touche du clavier est relâchée * keypress * Déclenché par l'appui sur une touche du clavier (enfoncé puis relâché) Exemple de gestion du clavier <html> <head> <script type="text/javascript"> var n = 0; function compter() { n++; document.getElementById("compteur").innerHTML = n; } </script> </head> <body> <form> <input type="text" onkeypress="compter();"/> </form> <p id="compteur"></p> </body> </html> Evénements de formulaire * Evénements que l'utilisateur déclenche en manipulant un formulaire * Sont donc subis par les champs d'un formulaire * Evénements liés au formulaire * change * Déclenché lorsque le contenu d'un élément est modifié * Déclenché au moment de la perte du focus par l'élément * submit * Déclenché à la soumission d'un formulaire * Code JavaScript retourne "true" ou "false" pour valider la soumission * reset * Déclenché à la réinitialisation du formulaire * Evénements liés à une sélection * focus * Déclenché lorsque l'élément récupère le focus * blur * Déclenché lorsque l'élément perd le focus * select * Déclenché lorsqu'une partie du contenu de l'élément est sélectionnée Exemple de gestion d'un formulaire <html> <head> <script type="text/javascript"> function verifier() { var annee = document.getElementById("annee").value; if (annee >= 1900 && annee <= 2000) return true; else { alert("L'année doit être entre 1900 et 2000"); return false; } } </script> </head> <body> <form method="get" action="sauve.php" onsubmit="return verifier();"> <input type="text" name="annee" id="annee"/> <input type="submit"/> </form> </body> </html> Evénements de page * Evénements déclenchés par la navigation dans une page * load * Déclenché une fois que la page est chargée * Utilisé sur la balise <body> * unload * Déclenché au moment où la page est quittée * Utilisé sur la balise <body> * error * Déclenché suite à une erreur de chargement * Utilisé sur la balise <img> * abort * Déclenché lorsque le chargement de la page est abandonné * Utilisé sur la balise <img> Exemple de gestion de la page <html> <head> <script type="text/javascript"> var arrivee; function debut() { var date = new Date(); arrivee = date.getTime(); } function fin() { var date = new Date(); var duree = (date.getTime() - arrivee) / 1000; alert("Vous êtes restés " + duree + " secondes sur la page."); } </script> </head> <body onload="debut();" onunload="fin();"> ... </body> </html> |