--- title: EventTarget slug: Web/API/EventTarget tags: - API - Cible de l'événement - DOM - DOM Events - EventTarget - Interface - Événements DOM translation_of: Web/API/EventTarget ---
EventTarget est une interface DOM implémentée par des objets qui peuvent recevoir des événements et peuvent avoir des écouteurs pour eux.
{{domxref ("Element")}}, {{domxref ("Document")}} et {{domxref ("Window")}} sont les cibles d'événements les plus fréquentes, mais d'autres objets peuvent également être des cibles d'événements. Par exemple {{domxref ("XMLHttpRequest")}}, {{domxref ("AudioNode")}}, {{domxref ("AudioContext")}} et autres.
De nombreuses cibles d'événements (y compris des éléments, des documents et des fenêtres) supporte également la définition de gestionnaires d'événements via les propriétés et attributs onevent.
{{InheritanceDiagram}}
EventTarget.EventTarget.EventTarget.EventTarget.Mozilla inclut quelques extensions à utiliser par les cibles d'événements implémentées par JS pour implémenter les propriétés onevent.
Voir aussi liaisons WebIDL.
void setEventHandler(DOMString type, EventHandler handler) {{non-standard_inline}}EventHandler getEventHandler(DOMString type) {{non-standard_inline}}const EventTarget = function () {
this.listeners = {}
}
EventTarget.prototype.listeners = null
EventTarget.prototype.addEventListener = function (type, callback) {
if (!(type in this.listeners)) {
this.listeners[type] = []
}
this.listeners[type].push(callback)
}
EventTarget.prototype.removeEventListener = function (type, callback) {
if (!(type in this.listeners)) {
return
}
const stack = this.listeners[type]
for (let i = 0, l = stack.length; i < l; i++) {
if (stack[i] === callback) {
stack.splice(i, 1)
return
}
}
}
EventTarget.prototype.dispatchEvent = function (event) {
if (!(event.type in this.listeners)) {
return true
}
const stack = this.listeners[event.type].slice()
for (let i = 0, l = stack.length; i < l; i++) {
stack[i].call(this, event)
}
return !event.defaultPrevented
}
| Spécification | Status | Comment |
|---|---|---|
| {{SpecName('DOM WHATWG', '#interface-eventtarget', 'EventTarget')}} | {{Spec2('DOM WHATWG')}} | Pas de changement. |
| {{SpecName('DOM3 Events', 'DOM3-Events.html#interface-EventTarget', 'EventTarget')}} | {{Spec2('DOM3 Events')}} | Quelques paramètres sont désormais optionnels (listener), ou acceptent la valeur nulle (useCapture). |
| {{SpecName('DOM2 Events', 'events.html#Events-EventTarget', 'EventTarget')}} | {{Spec2('DOM2 Events')}} | Définition initiale. |
{{Compat("api.EventTarget")}}