EventTarget est une interface implémentée par des objets qui peuvent recevoir des évènements et avoir des auditeurs.

Element, document, et window sont les évènements cibles les plus communs, cependant d'autres objets peuvent être utilisés comme évènements cibles, par exemple XMLHttpRequest, AudioNode, AudioContext et d'autres.

De nombreux évènements cibles (incluant les éléments documents et fenêtres) supportent également le réglage event handlers via les propriétés et attributs on... .

Constructeur

EventTarget()
Crée une nouvelle instance d'EventTarget.

Méthodes

EventTarget.addEventListener()
Enregiste un gestionnaire d'évènement d'un type d'évènement spécifique EventTarget.
EventTarget.removeEventListener()
Supprime un auditeur d'évènements de EventTarget.
EventTarget.dispatchEvent()
Envoie un élément à EventTarget.

Exemples

Une implémentation simple

var 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;
  }
  var stack = this.listeners[type];
  for (var 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;
  }
  var stack = this.listeners[event.type];

  for (var i = 0, l = stack.length; i < l; i++) {
    stack[i].call(this, event);
  }
  return !event.defaultPrevented;
};

Spécifications

Spécifications Statuts Commentaires
DOM
La définition de 'EventTarget' dans cette spécification.
Standard évolutif Pas de changement.
Document Object Model (DOM) Level 3 Events Specification
La définition de 'EventTarget' dans cette spécification.
Obsolete Quelques paramètres sont désormais optionnels (listener), ou accepte la valeur null (useCapture).
Document Object Model (DOM) Level 2 Events Specification
La définition de 'EventTarget' dans cette spécification.
Obsolete Définition initiale.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung Internet
Support simpleChrome Support complet 1Edge Support complet OuiFirefox Support complet 1IE Support complet 9Opera Support complet 7Safari Support complet 10.1
Support complet 10.1
Aucun support 1 — 10.1
Notes
Notes Window.EventTarget did not exist on versions of Safari before 10.1.
WebView Android Support complet 1Chrome Android Support complet 18Edge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet 7Safari iOS Support complet 10.1
Support complet 10.1
Aucun support 1 — 10.1
Notes
Notes Window.EventTarget did not exist on versions of Safari iOS before 10.1.
Samsung Internet Android Support complet Oui
EventTarget() constructorChrome Support complet 64Edge ? Firefox Support complet 59IE Aucun support NonOpera Support complet 51Safari Aucun support NonWebView Android Support complet 64Chrome Android Support complet 64Edge Mobile ? Firefox Android Support complet 59Opera Android Support complet 51Safari iOS Aucun support NonSamsung Internet Android Aucun support Non
addEventListenerChrome Support complet 1
Notes
Support complet 1
Notes
Notes Before Chrome 49, the type and listener parameters were optional.
Edge Support complet 12Firefox Support complet 1IE Support complet 9
Support complet 9
Aucun support 6 — 11
Notes Autre nom
Notes Older versions of IE supported an equivalent, proprietary EventTarget.attachEvent() method.
Autre nom Cette fonctionnalité utilise le nom non-standard : attachEvent
Opera Support complet 7Safari Support complet 1WebView Android Support complet 1
Notes
Support complet 1
Notes
Notes Before Chrome 49, the type and listener parameters were optional.
Chrome Android Support complet 18
Notes
Support complet 18
Notes
Notes Before Chrome 49, the type and listener parameters were optional.
Edge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet 7Safari iOS Support complet 1Samsung Internet Android Support complet Oui
dispatchEventChrome Support complet 4Edge Support complet 12Firefox Support complet 2IE Support complet 9
Support complet 9
Aucun support 6 — 11
Notes Autre nom
Notes Older versions of IE supported an equivalent, proprietary EventTarget.fireEvent() method.
Autre nom Cette fonctionnalité utilise le nom non-standard : fireEvent
Opera Support complet 9Safari Support complet 3.2WebView Android Support complet 4Chrome Android Support complet 18Edge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet OuiSafari iOS Support complet OuiSamsung Internet Android Support complet Oui
removeEventListenerChrome Support complet 1Edge Support complet 12Firefox Support complet 1IE Support complet 9
Support complet 9
Aucun support 6 — 11
Notes Autre nom
Notes Older versions of IE supported an equivalent, proprietary EventTarget.detachEvent() method.
Autre nom Cette fonctionnalité utilise le nom non-standard : detachEvent
Opera Support complet 7Safari Support complet 1WebView Android Support complet 1Chrome Android Support complet 18Edge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet 7Safari iOS Support complet 1Samsung Internet Android Support complet Oui

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Voir les notes d'implémentation.
Voir les notes d'implémentation.
Cette fonctionnalité utilise un nom non-standard.
Cette fonctionnalité utilise un nom non-standard.

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight, Gibus, Hell_Carlito, Iwagg, fscholz
Dernière mise à jour par : SphinxKnight,