JS li Tag onclick funktioniert in IE8 nicht: Eine Lösung
Bei der Webentwicklung ist die browserübergreifende Kompatibilität von größter Bedeutung. Unerwartetes Verhalten in Internetbrowsern wie IE8 kann frustrierend sein. Dieser Artikel befasst sich mit einem Problem, bei dem der Onclick-Ereignis-Listener auf einem
Um die Lösung zu verstehen, ist es wichtig zu erkennen, dass IE8 die Standardmethode addEventListener nicht unterstützt. Stattdessen wird die alte Methode „attachEvent“ verwendet. Um Ereignisse in IE8 zu verarbeiten und die browserübergreifende Kompatibilität sicherzustellen, können wir eine Polyfill-Funktion verwenden:
var hookEvent = (function() { var div; function standardHookEvent(element, eventName, handler) { element.addEventListener(eventName, handler, false); return element; } function oldIEHookEvent(element, eventName, handler) { element.attachEvent("on" + eventName, function(e) { e = e || window.event; e.preventDefault = oldIEPreventDefault; e.stopPropagation = oldIEStopPropagation; handler.call(element, e); }); return element; } function oldIEPreventDefault() { this.returnValue = false; } function oldIEStopPropagation() { this.cancelBubble = true; } div = document.createElement('div'); if (div.addEventListener) { div = undefined; return standardHookEvent; } if (div.attachEvent) { div = undefined; return oldIEHookEvent; } throw "Neither modern event mechanism (addEventListener nor attachEvent) is supported by this browser."; })();
Diese Funktion erkennt, welcher Ereignisbehandlungsmechanismus vom Browser unterstützt wird und ruft die entsprechende Funktion auf. Es stellt auch Polyfills für die Methoden „preventDefault“ und „stopPropagation“ bereit.
Um diese Funktion zu verwenden, können wir unseren ursprünglichen Code ändern:
hookEvent(document.getElementById("hd_vertical"), "click", function(e) { // Handle the event });
Zuletzt ist es erwähnenswert, dass IE8 auch keine Unterstützung für getElementsByClassName bietet. Stattdessen sollten wir querySelectorAll verwenden, um Elemente in IE8 abzurufen.
Durch die Implementierung dieser Lösungen können wir sicherstellen, dass unsere
Das obige ist der detaillierte Inhalt vonWarum funktioniert die Onclick-Funktion meines „Tags' in IE8 nicht und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!