viernes, 4 de febrero de 2011

Simular el evento click con JavaScript

Para muchos programadores que quieren ejecutar el evento click de cualquier elemento ya sea de controles de servidor la siguiente funcion realiza las simulacion del evento click ya sea de un boton o cualquier elemento que soporte esta propiedad.

Sencillamente el ejecutar:

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

debería funcionar sin ningún problema, ya que obliga a ejecutar el evento click de este elemento pero sorpresa solo funciona con IE, si probamos con otros navegadores esto no es posible de ejecutar con esta funcion.

Para los distintos navegadores se debe usar la sig funcion:


var nouEvent = document.createEvent("MouseEvents");
nouEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
var objecte = document.getElementById("miboton");
var canceled = !objecte.dispatchEvent(nouEvent);


Aquí lo que se hace es crear un evento dentro de la pagina relacionado con el mouse, en este caso queremos que sea del evento click para ello usamos la función initMouseEvent() y le pasamos los parámetros para agregar nuestra función.

Despues creamos el elemento el cual contiene la funcion click que queremos ejecutar por ultimo ejecutamos el evento con la funcion dispatchEvent() y le pasamos como parametro el evento que acabamos de crear en este caso el del click y ya con eso se ejecuta para los distintos navegadores diferentes a IE.

Espero que esta funcion les ayude tanto como a mi me ayudo.
Cualquier duda comentar.