Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann ich browserübergreifend kompatiblen Code für die Ereignisbehandlung schreiben?

Patricia Arquette
Freigeben: 2024-10-27 09:07:03
Original
723 Leute haben es durchsucht

How can I write cross-browser compatible code for event handling?

Browserübergreifende Kompatibilität für die Ereignisbehandlung

Die Methode addEventListener gilt weithin als Standard für das Hinzufügen von Ereignishandlern in der Webentwicklung. Internet Explorer vor Version 9 verwendete jedoch einen anderen Ansatz mit der Methode attachmentEvent.

Internet Explorer 9 und höher

In Internet Explorer 9 und späteren Versionen der addEventListener Methode wird vollständig unterstützt. Dies bedeutet, dass Sie den folgenden Code für die browserübergreifende Kompatibilität verwenden können:

if (!Element.prototype.addEventListener) {
    Element.prototype.addEventListener = function() { .. }
}
Nach dem Login kopieren

Dieser Code prüft, ob die addEventListener-Methode für das Element-Objekt vorhanden ist, und fügt sie hinzu, wenn dies nicht der Fall ist. Dadurch wird sichergestellt, dass alle Elemente addEventListener in Internet Explorer 9 und höher unterstützen.

Funktion entspricht addEventListener in Internet Explorer

Vor Internet Explorer 9 diente die Methode attachmentEvent als Äquivalent zu addEventListener. Es ist jedoch wichtig zu beachten, dass attachmentEvent in modernen Browsern nicht unterstützt wird.

Browserübergreifende Lösung zur Ereignisbehandlung

Um Ereignisse konsistent über verschiedene Browser hinweg zu verarbeiten, können Sie dies tun Verwenden Sie die folgende Funktion:

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;
   }
}
Nach dem Login kopieren

Diese Funktion prüft, ob das Element addEventListener oder attachmentEvent unterstützt und hängt den Event-Handler entsprechend an. Wenn keine der beiden Methoden verfügbar ist, wird die Funktion direkt der Ereigniseigenschaft des Elements zugewiesen.

Das obige ist der detaillierte Inhalt vonWie kann ich browserübergreifend kompatiblen Code für die Ereignisbehandlung schreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage