Rumah > hujung hadapan web > tutorial js > 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
Lepaskan: 2024-10-27 09:07:03
asal
744 orang telah melayarinya

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

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;
   }
}
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan