EventTarget : méthode dispatchEvent()
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
Note : Cette fonctionnalité est disponible via les Web Workers.
Les évènements déclenchés manuellement avec dispatchEvent() suivent les mêmes règles de gestion que les évènements natifs, y compris la phase de capture et, éventuellement, de propagation.
La méthode dispatchEvent() de l'interface EventTarget envoie un objet Event à la cible, invoquant (de façon synchrone) les écouteurs d'évènements concernés dans l'ordre approprié. Les règles normales de gestion des évènements (y compris la phase de capture et, éventuellement, de propagation) s'appliquent aussi aux évènements déclenchés manuellement avec dispatchEvent().
Appeler dispatchEvent() est la dernière étape pour déclencher un évènement. L'évènement doit déjà avoir été créé et initialisé à l'aide d'un constructeur Event().
Note :
Lors de l'appel à cette méthode, la propriété Event.target est initialisée à la valeur d'un EventTarget courant.
Contrairement aux évènements « natifs », qui sont déclenchés par le navigateur en mettant en file d'attente une tâche sur la boucle d'évènements, dispatchEvent() invoque tous les gestionnaires d'évènements applicables de façon synchrone avant de retourner. La propriété en lecture seule isTrusted vaut true pour les évènements natifs et false pour les évènements déclenchés avec dispatchEvent().
Syntaxe
dispatchEvent(event)
Paramètres
event-
L'objet
Eventà déclencher. Sa propriétéEvent.targetest définie sur la valeur d'unEventTargetcourant.
Valeur de retour
Retourne false si event est annulable et qu'au moins un des gestionnaires d'évènements ayant reçu event ayant appelé Event.preventDefault(). Sinon, retourne true.
Exceptions
InvalidStateErrorDomException-
Levée si le type de l'évènement n'a pas été défini lors de l'initialisation de l'évènement.
Attention : Les exceptions levées par les gestionnaires d'évènements sont signalées comme des exceptions non interceptées. Les gestionnaires d'évènements s'exécutent sur une pile d'appels imbriquée : ils bloquent l'appelant jusqu'à leur achèvement, mais les exceptions ne sont pas propagées à l'appelant.
Exemple
Spécifications
| Spécification |
|---|
| DOM> # ref-for-dom-eventtarget-dispatchevent③> |