Heim > Web-Frontend > js-Tutorial > Warum funktioniert die Onclick-Funktion meines „Tags' in IE8 nicht und wie kann ich das Problem beheben?

Warum funktioniert die Onclick-Funktion meines „Tags' in IE8 nicht und wie kann ich das Problem beheben?

DDD
Freigeben: 2024-12-11 15:33:14
Original
746 Leute haben es durchsucht

Why Doesn't My `` Tag's `onclick` Function Work in IE8, and How Can I Fix It?

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

  • Tag funktioniert in IE8 nicht.

    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.";
    })();
    Nach dem Login kopieren

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

    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

  • Der Onclick-Ereignis-Listener von tag funktioniert in mehreren Browsern, einschließlich IE8.

    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!

  • 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
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage