Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah saya boleh menulis kod serasi silang penyemak imbas untuk pengendalian acara?

Bagaimanakah saya boleh menulis kod serasi silang penyemak imbas untuk pengendalian acara?

Patricia Arquette
Patricia Arquetteasal
2024-10-27 09:07:03654semak imbas

How can I write cross-browser compatible code for event handling?

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!

Kenyataan:
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