Simulasi Klik dalam JavaScript: Panduan
Simulasi klik elemen menggunakan JavaScript ialah tugas biasa dalam pembangunan web. Ini boleh dicapai dalam pelbagai cara, bergantung pada keperluan keserasian penyemak imbas.
Menggunakan Kaedah klik() (IE Sahaja)
Dalam Internet Explorer, anda boleh menggunakan kaedah klik() terus pada elemen yang anda ingin cetuskan acara klik pada:
document.getElementById('btn').click();
Menggunakan Kaedah dispatchEvent() (Pelayar Moden)
Untuk penyemak imbas moden, anda boleh menggunakan kaedah dispatchEvent() untuk mencipta acara klik tetikus tersuai dan menghantarnya ke elemen:
var evObj = document.createEvent('MouseEvents'); evObj.initMouseEvent('click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null); document.getElementById('btn').dispatchEvent(evObj);
Mengapa Kod Anda Tidak Berfungsi
Kod yang diberikan dalam soalan ialah tidak berfungsi kerana fungsi simulateClick() tiada butiran penting. Kaedah initMouseEvent() dalam MouseEvents API memerlukan sifat clientX dan clientY ditetapkan, yang menentukan kedudukan klik dalam tetingkap penyemak imbas.
Kod Disemak
Untuk menyelesaikan isu, tambah kod berikut untuk menetapkan sifat clientX dan clientY:
evObj.clientX = 0; evObj.clientY = 0;
Kod yang dikemas kini akan kelihatan seperti ini:
function simulateClick(control) { if (document.all) { control.click(); } else { var evObj = document.createEvent('MouseEvents'); evObj.initMouseEvent('click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null); evObj.clientX = 0; evObj.clientY = 0; control.dispatchEvent(evObj); } }
Ini seharusnya berjaya mensimulasikan klik pada elemen dengan ID 'mytest1'.
Atas ialah kandungan terperinci Cara Mensimulasikan Klik dalam JavaScript: `click()` lwn. `dispatchEvent()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!