Rumah > hujung hadapan web > tutorial js > Mengapa Fungsi `` Tag' Saya `onclick` Tidak Berfungsi dalam IE8 dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Fungsi `` Tag' Saya `onclick` Tidak Berfungsi dalam IE8 dan Bagaimana Saya Boleh Membetulkannya?

DDD
Lepaskan: 2024-12-11 15:33:14
asal
784 orang telah melayarinya

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

JS li Tag onclick Not Functioning in IE8: A Solution

Dalam pembangunan web, keserasian merentas penyemak imbas adalah yang terpenting. Menghadapi tingkah laku yang tidak dijangka dalam pelayar internet seperti IE8 boleh mengecewakan. Artikel ini menangani isu di mana pendengar acara onclick pada

  • tag gagal berfungsi dalam IE8.

    Untuk memahami penyelesaian, adalah penting untuk mengenali kekurangan sokongan IE8 untuk kaedah addEventListener standard. Sebaliknya, ia menggunakan kaedah attachEvent warisan. Untuk mengendalikan acara dalam IE8 dan memastikan keserasian merentas penyemak imbas, kami boleh menggunakan fungsi polyfill:

    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.";
    })();
    Salin selepas log masuk

    Fungsi ini mengesan mekanisme pengendalian peristiwa mana yang disokong oleh penyemak imbas dan memanggil fungsi yang sesuai. Ia juga menyediakan poliisi untuk kaedah preventDefault dan stopPropagation.

    Untuk menggunakan fungsi ini, kami boleh mengubah suai kod asal kami:

    hookEvent(document.getElementById("hd_vertical"), "click", function(e) {
        // Handle the event
    });
    Salin selepas log masuk

    Akhir sekali, perlu diingat bahawa IE8 juga tidak mempunyai sokongan untuk getElementsByClassName. Sebaliknya, kita harus menggunakan querySelectorAll untuk mendapatkan semula elemen dalam IE8.

    Dengan melaksanakan penyelesaian ini, kami boleh memastikan bahawa

  • pendengar acara onclick tag berfungsi merentas berbilang penyemak imbas, termasuk IE8.

    Atas ialah kandungan terperinci Mengapa Fungsi `` Tag' Saya `onclick` Tidak Berfungsi dalam IE8 dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

  • sumber:php.cn
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan