next up previous contents
suivant: Nouvelle URL monter: Introduction à JavaScript précédent: Gestionnaire d'événements   Table des matières

Capture d'événements

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)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.
next up previous contents
suivant: Nouvelle URL monter: Introduction à JavaScript précédent: Gestionnaire d'événements   Table des matières
Pascal VERON 2000-03-28