suivant: Nouvelle URL
monter: Introduction à JavaScript
précédent: Gestionnaire d'événements
 
Table des matières
En général, lorsqu'un événement survient, il est directement reçu par l'objet concerné. Lorsque l'on clique sur un bouton de formulaire (par exemple), ce dernier reçoit l'événement
onClick. Cependant, JavaScript offre la possibilté de faire intercepter un événement par l'un de ces trois objets: objet de type
window, objet de type
window.document, objet de type
window.layer. On parle de capture d'événements. Ceci nous permettra de plus d'utiliser certains événements qui ne sont gérés par aucune balise comme l'attribut
onMouseMove.
Pour intercepter un événement on utilise la méthode
captureEvents dont la syntaxe est:
captureEvents(Event.EVENT1)
où
EVENT1 est un nom d'événement obtenu à partir d'un nom d'attribut de balise en appliquant la règle suivante: on supprime le ``
on'' du nom, et on transforme le reste en majuscules.
Exemple 12.
L'attribut
onMouseMove donne
MOUSEMOVE.
Si l'on désire capturer plusieurs événements, on les sépare par des | :
captureEvents(Event.EVENT1 | Event.EVENT2 | ... | Event.EVENTN)
Une fois que l'on a défini une capture pour l'une des 3 entités citées ci-dessus (notons-la E), on doit associer à chaque événement intercepté un gestionnaire d'événement (i.e une fonction JavaScript) de la façon suivante:
E.onevent1 = fonction1;
.
.
.
E.oneventn = fonctionN;
Exemple 13.
window.captureEvents(Event.CLICK|Event.MOUSEMOVE);
window.onclick = myclick;
window.onmousemove = mymousemove;Dans l'exemple ci-dessus tout mouvement de souris dans la fenêtre du navigateur et tout clique sur un objet quelconque inscrit dans le document est intercepté par le navigateur et déclenche l'exécution des fonctions
myclick et
mymousemove.
Remarque Importante 14.
JavaScript passe automatiquement en paramètre à la fonction appelée l'objet
event contenant différentes propriétés sur l'événement. Ainsi il suffit de déclarer un paramètre dans la dite fonction pour pouvoir récupérer l'une de ses propriétés.
Exemple 15.
On désire développer un script JavaScript de façon à ce que si l'on clique à l'intérieur de la fenêtre du navigateur (sur une zone vierge) avec le bouton gauche, la largeur et la hauteur de la fenêtre soient augmentées de 10 pixels, si on clique avec le bouton du milieu, la largeur et la hauteur soient diminuées de 10 pixels.
<SCRIPT LANGUAGE="JavaScript1.2">
function taille(e)
{
if (e.which == 1) window.resizeBy(10,10)
else if (e.which == 2) window.resizeBy(-10,-10);
}
window.captureEvents(Event.MOUSEDOWN);
window.onmousedown = taille;
</SCRIPT>
</HEAD>
Pour annuler l'interception d'un événement on dispose de la méthode
releaseEvents dont la syntaxe est identique à
captureEvents.
suivant: Nouvelle URL
monter: Introduction à JavaScript
précédent: Gestionnaire d'événements
 
Table des matières
Pascal VERON
2000-03-28