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
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."; })();
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 });
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
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!