Rumah  >  Artikel  >  hujung hadapan web  >  ## Mengapa Adakah `addEventListener` Saya Tidak Berfungsi dalam Internet Explorer?

## Mengapa Adakah `addEventListener` Saya Tidak Berfungsi dalam Internet Explorer?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-24 18:45:37259semak imbas

##  Why Does My `addEventListener` Not Work in Internet Explorer?

MSIE AddEventListener Conundrum: Event Capture dan Keserasian Merentas Pelayar

Dalam bidang pembangunan web, adalah penting untuk memastikan bahawa pengendalian acara adalah konsisten merentas pelbagai pelayar. Walau bagaimanapun, cabaran timbul apabila cuba mendengar acara tertentu dalam Internet Explorer (MSIE).

Salah satu cabaran sedemikian ialah ketidakserasian addEventListener apabila bekerja dengan MSIE. Coretan kod yang anda berikan, yang cuba mendengar acara penyalinan, menghadapi ralat disebabkan isu ini.

Punca Masalah: Lampirkan Acara kepada Penyelamat

Tidak seperti pelayar moden yang lain, MSIE mewajibkan penggunaan attachEvent dan bukannya addEventListener untuk mendengar acara. Untuk membetulkan percanggahan ini, anda mesti menggantikan skrip pihak ketiga dengan rakan sejawat yang lebih mesra IE seperti berikut:

if (el.addEventListener) {
  el.addEventListener('copy', beforeCopy, false);
} else if (el.attachEvent) {
  el.attachEvent('oncopy', beforeCopy);
}

Mata Bonus: Membongkar Misteri Parameter Ketiga

Parameter ketiga dalam addEventListener, useCapture, menentukan sama ada acara itu harus ditangkap atau dibuih melalui DOM. Menetapkannya kepada palsu membayangkan menggelegak, gelagat lalai di mana peristiwa itu mula-mula dihantar ke elemen paling dalam dan kemudian merambat ke atas kepada nenek moyangnya.

Petua Keserasian Merentas Pelayar Tambahan

Untuk meningkatkan lagi keserasian merentas penyemak imbas, pertimbangkan untuk menggunakan polyfill untuk mengasingkan nuansa antara addEventListener dan attachEvent serta ciri khusus pelayar lain. Poliisi yang ketara termasuk:

  • [EventListener.js](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)
  • [ clouset.js](https://github.com/Clouset/Clouset)

Dengan menerima pertimbangan khusus penyemak imbas ini dan melaksanakan langkah keserasian merentas pelayar yang diperlukan, anda boleh memastikan bahawa aplikasi web anda bertindak balas secara konsisten terhadap tindakan pengguna, tanpa mengira penyemak imbas yang digunakan.

Atas ialah kandungan terperinci ## Mengapa Adakah `addEventListener` Saya Tidak Berfungsi dalam Internet Explorer?. 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