write usuario type tipos tecla script qué oprima mover llamar hace función funciones forma externo ejecutar desde cuando cualquier archivo javascript

usuario - ¿Cómo simular un clic con JavaScript?



tipos de funciones en javascript (6)

Me pregunto cómo puedo usar JavaScript para simular un clic en un elemento.

Actualmente tengo:

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

Pero no está funcionando :(

¿Algunas ideas?


¿Has considerado usar jQuery para evitar toda la detección del navegador? Con jQuery, sería tan simple como:

$("#mytest1").click();


¿Qué pasa con algo simple como:

document.getElementById(''elementID'').click();

Supported incluso por IE.


Esto es lo que cociné. Es bastante simple, pero funciona:

function eventFire(el, etype){ if (el.fireEvent) { el.fireEvent(''on'' + etype); } else { var evObj = document.createEvent(''Events''); evObj.initEvent(etype, true, false); el.dispatchEvent(evObj); } }

Uso:

eventFire(document.getElementById(''mytest1''), ''click'');


La mejor respuesta es la mejor! Sin embargo, no estaba activando eventos del mouse para mí en Firefox cuando etype = ''click'' .

Por lo tanto, cambié document.createEvent a ''MouseEvents'' y eso solucionó el problema. El código adicional es para probar si otro bit de código estaba interfiriendo con el evento, y si se cancelaba, lo registraría en la consola.

function eventFire(el, etype){ if (el.fireEvent) { el.fireEvent(''on'' + etype); } else { var evObj = document.createEvent(''MouseEvents''); evObj.initEvent(etype, true, false); var canceled = !el.dispatchEvent(evObj); if (canceled) { // A handler called preventDefault. console.log("automatic click canceled"); } else { // None of the handlers called preventDefault. } } }


Podrías ahorrarte un montón de espacio usando jQuery. Solo necesitas usar:

$(''#myElement'').trigger("click")


var elem = document.getElementById(''mytest1''); // Simulate clicking on the specified element. triggerEvent( elem, ''click'' ); /** * Trigger the specified event on the specified element. * @param {Object} elem the target element. * @param {String} event the type of the event (e.g. ''click''). */ function triggerEvent( elem, event ) { var clickEvent = new Event( event ); // Create the event. elem.dispatchEvent( clickEvent ); // Dispatch the event. }

Referencia