Maison >interface Web >js tutoriel >Comment puis-je garantir la compatibilité des écouteurs d'événements entre navigateurs, en particulier dans Internet Explorer ?

Comment puis-je garantir la compatibilité des écouteurs d'événements entre navigateurs, en particulier dans Internet Explorer ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 15:31:291058parcourir

How Can I Ensure Cross-Browser Event Listener Compatibility, Especially in Internet Explorer?

Compatibilité addEventListener dans Internet Explorer

L'ajout de gestionnaires d'événements avec addEventListener est la méthode DOM préférée pour la plupart des navigateurs. Cependant, dans Internet Explorer (jusqu'à la version 8), la méthode attachEvent était utilisée à la place.

Support d'Internet Explorer 9

Internet Explorer 9 a finalement adopté la méthode addEventListener, s'alignant sur d'autres navigateurs modernes. Cela signifie que vous pouvez désormais utiliser addEventListener dans IE9 et versions ultérieures sans aucun problème de compatibilité.

Compatibilité entre navigateurs

Si vous souhaitez prendre en charge les versions plus anciennes et plus récentes de Internet Explorer ainsi que d'autres navigateurs, vous pouvez utiliser la fonction addEvent multi-navigateurs suivante :

function addEvent(evnt, elem, func) {
   if (elem.addEventListener)  // W3C DOM
      elem.addEventListener(evnt,func,false);
   else if (elem.attachEvent) { // IE DOM
      elem.attachEvent("on"+evnt, func);
   }
   else { // No much to do
      elem["on"+evnt] = func;
   }
}

Cette fonction vérifie si l'élément prend en charge addEventListener, et sinon, utilise attachEvent pour la compatibilité IE. Sinon, il suffit de définir directement le gestionnaire d'événements.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn