Saya hanya ingin tahu bagaimana saya bisa menggunakan JavaScript untuk mensimulasikan klik pada suatu elemen.
Saat ini saya punya:
<script type="text/javascript">
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 );
control.dispatchEvent(evObj);
}
}
</script>
<a href="http://www.google.com" id="mytest1">test 1</a><br>
<script type="text/javascript">
simulateClick(document.getElementById('mytest1'));
</script>
Tapi itu tidak berhasil :(
Ada ide?
javascript
Ikan Belgin
sumber
sumber
Jawaban:
Inilah yang saya masak. Ini cukup sederhana, tetapi berhasil:
Pemakaian:
sumber
document.querySelector('[value="2706236"]').nextSibling.nextSibling.dispatchEvent(ev);
:)dispatchEvent
atauclick
doa dengansetTimeout
, seperti yang muncul bahwadispatchEvent
adalah sinkron .Event.initEvent
sekarang sudah ditinggalkan developer.mozilla.org/en/docs/Web/API/Event/initEventBagaimana dengan sesuatu yang sederhana seperti:
Didukung bahkan oleh IE.
sumber
Sudahkah Anda mempertimbangkan untuk menggunakan jQuery untuk menghindari semua deteksi browser? Dengan jQuery, itu akan sesederhana:
sumber
Referensi
sumber
Anda bisa menghemat banyak ruang dengan menggunakan jQuery. Anda hanya perlu menggunakan:
sumber
Jawaban teratas adalah yang terbaik! Namun, itu tidak memicu peristiwa mouse untuk saya di Firefox saat itu
etype = 'click'
.Jadi, saya mengubah
document.createEvent
ke'MouseEvents'
dan tetap masalah. Kode tambahan adalah untuk menguji apakah ada sedikit kode yang mengganggu acara, dan jika dibatalkan, saya akan mencatatnya di konsol.sumber
Ikuti tautan ini untuk mengetahui tentang peristiwa mouse menggunakan Javascript dan kompatibilitas browser untuk hal yang sama
https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent#Browser_compatibility
sumber