Rumah > Artikel > hujung hadapan web > Bagaimanakah saya boleh menulis kod serasi silang penyemak imbas untuk pengendalian acara?
Keserasian Merentas Pelayar untuk Pengendalian Acara
Kaedah addEventListener diiktiraf secara meluas sebagai standard untuk menambah pengendali acara dalam pembangunan web. Walau bagaimanapun, Internet Explorer sebelum versi 9 menggunakan pendekatan yang berbeza dengan kaedah attachEvent.
Internet Explorer 9 and Beyond
Dalam Internet Explorer 9 dan versi yang lebih baru, addEventListener kaedah disokong sepenuhnya. Ini bermakna anda boleh menggunakan kod berikut untuk keserasian merentas penyemak imbas:
if (!Element.prototype.addEventListener) { Element.prototype.addEventListener = function() { .. } }
Kod ini menyemak sama ada kaedah addEventListener wujud untuk objek Element dan menambahkannya jika tiada. Ini memastikan bahawa semua elemen menyokong addEventListener dalam Internet Explorer 9 dan lebih baru.
Fungsi Setara dengan addEventListener dalam Internet Explorer
Sebelum Internet Explorer 9, kaedah attachEvent berfungsi sebagai bersamaan dengan addEventListener. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa attachEvent tidak disokong dalam penyemak imbas moden.
Penyelesaian Pengendalian Acara Merentas Pelayar
Untuk mengendalikan acara secara konsisten merentas penyemak imbas yang berbeza, anda boleh gunakan fungsi berikut:
function addEvent(evnt, elem, func) { if (elem.addEventListener) // W3C DOM elem.addEventListener(evnt,func,false); else if (elem.attachEvent) { // IE DOM elem.attachEvent("on"+evnt, func); } else { // No much to do elem["on"+evnt] = func; } }
Fungsi ini menyemak sama ada elemen menyokong addEventListener atau attachEvent dan melampirkan pengendali acara dengan sewajarnya. Jika kedua-dua kaedah tidak tersedia, ia memberikan fungsi secara langsung kepada sifat acara elemen.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menulis kod serasi silang penyemak imbas untuk pengendalian acara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!