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