Heim > Web-Frontend > js-Tutorial > Warum schlagen meine „onclick'-Ereignishandler in IE8 fehl und wie kann ich sie beheben?

Warum schlagen meine „onclick'-Ereignishandler in IE8 fehl und wie kann ich sie beheben?

Linda Hamilton
Freigeben: 2024-11-28 07:11:10
Original
829 Leute haben es durchsucht

Why Do My `` onclick Event Handlers Fail in IE8, and How Can I Fix Them?

IE8 „Onclick“-Ereignis-Listener-Probleme mit

  • Tags

    Bei Verwendung des bereitgestellten JavaScript-Codes in IE8 wird der „onclick“-Ereignishandler für

  • Elemente funktionieren möglicherweise nicht wie erwartet. Dieses Problem ist darauf zurückzuführen, dass die Methode „addEventListener“ in IE8 und früheren Versionen des Browsers nicht unterstützt wird.

    Lösung:

    Um dieses Problem zu beheben, gibt es einen Workaround Es kann der nicht standardmäßige Vorgänger von „addEventListener“ in IE8, nämlich „attachEvent“, verwendet werden. Hier ist eine modifizierte Version des JavaScript-Codes, der diese Methode verwendet:

    hookEvent(document.getElementById("hd_vertical"), "click", function(e) {
            if(e.target.nodeName == "LI") { 
                var _anchor = e.target.id;
                changeLocation(_anchor);
            } else if(e.target.nodeName == "SPAN") {
                var span = e.target;
                var li = span.parentNode;
                var _anchor = li.id;   
                changeLocation(_anchor);
        }
    });
    Nach dem Login kopieren

    So funktioniert dieser Code:

    • hookEvent: Diese Funktion prüft auf Verfügbarkeit von „addEventListener“ oder „attachEvent“ und verwendet die jeweils passende Version Browser.
    • OldIEHookEvent: Diese Funktion hängt Ereignishandler an Elemente an, indem sie „attachEvent“ in IE8 und früheren Browsern verwendet. Außerdem werden fehlende Funktionen wie „preventDefault“ und „stopPropagation“ mehrfach ausgefüllt.

    Hinweis: IE8 bietet auch keine Unterstützung für „getElementsByClassName“. Erwägen Sie stattdessen die Verwendung von „querySelector“ oder „querySelectorAll“:

    var _url = document.querySelector("." + id).getAttribute('href');
    Nach dem Login kopieren

    Durch die Implementierung dieser Änderungen werden „onclick“-Ereignishandler für

  • Elemente sollten jetzt in IE8 ordnungsgemäß funktionieren.

    Das obige ist der detaillierte Inhalt vonWarum schlagen meine „onclick'-Ereignishandler in IE8 fehl und wie kann ich sie 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
    Neueste Artikel des Autors
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage