Foros del Web » Programando para Internet » Javascript »

evt.initMouseEvent("click"...)

Estas en el tema de evt.initMouseEvent("click"...) en el foro de Javascript en Foros del Web. buenas, estoy intentando hacer una función que automáticamente haga click en una cordenada absoluta de la página. La coordenada del elemento en cuestión la saco ...
  #1 (permalink)  
Antiguo 09/06/2011, 19:05
 
Fecha de Ingreso: diciembre-2010
Mensajes: 41
Antigüedad: 13 años, 5 meses
Puntos: 0
evt.initMouseEvent("click"...)

buenas, estoy intentando hacer una función que automáticamente haga click en una cordenada absoluta de la página. La coordenada del elemento en cuestión la saco bien con este código:
Código Javascript:
Ver original
  1. function getAbsoluteElementPosition(element) {
  2.   if (typeof element == "string")
  3.     element = document.getElementById(element)
  4.    
  5.   if (!element) return { top:0,left:0 };
  6.  
  7.   var y = 0;
  8.   var x = 0;
  9.   while (element.offsetParent) {
  10.     x += element.offsetLeft;
  11.     y += element.offsetTop;
  12.     element = element.offsetParent;
  13.   }
  14.   return {top:y,left:x};
  15. }
Mi problema viene a la hora de darselo al evento
Código Javascript:
Ver original
  1. evt.initMouseEvent("click", true, true, window, 0, screenX, screenY, clientX y clientY, false, false, true, false, 0, null);
ya que no entiendo bien como funcionan los parametros screenX, screenY, clientX y clientY)
  #2 (permalink)  
Antiguo 09/06/2011, 19:19
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: evt.initMouseEvent("click"...)

buenas,
deberias explicar cual es la finalidad que deseas lograr. ¿tu quieres que programaticamente se haga un click en una coordenada especifica del documento? o, ¿que simplemente se dispare un evento registrado en un elemento que esta en dicha coordenada? si es lo primero, pues sencillamente eso es imposible. a traves de javascript no puedes emular acciones autenticas tal como la haria un humano. por cierto, asi no es como funciona los eventos sinteticos. los eventos sinteticos simplemente son objetos event similares a los que reciben los handlers de eventos. cada evento sintetico tiene unas funciones para inicializar las propiedades, pero eso no significa que el evento realmente haya ocurrido con esas caracteristicas. en este caso donde programaticamente estas creando un objeto event, las coordenadas que estas indicando no tiene un valor tan util que digamos. especificamente me refiero a que las coordenadas para situar un elemento puede variar de navegador en navegador, entre otros factores adicionales. sin embargo, si el asunto es para realizar pruebas de un evento, entonces no hay problema. en fin, toma en cuenta ese detalle.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 09/06/2011 a las 20:42
  #3 (permalink)  
Antiguo 09/06/2011, 23:31
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: evt.initMouseEvent("click"...)

Por que si desea simular un click como en digamos... un baner publicitario, es imposible.
Pero si desea disparar el evento de mouse "click", es asi:

Código Javascript:
Ver original
  1. var evt = document.createEvent("MouseEvents");
  2. evt.initMouseEvent("click", true, true, window,
  3. 0, 0, 0, 0, 0, false, false, false, false, 0, null);
  4.  
  5. document.getElementById("a").dispatchEvent(evt)
  #4 (permalink)  
Antiguo 10/06/2011, 06:35
 
Fecha de Ingreso: diciembre-2010
Mensajes: 41
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: evt.initMouseEvent("click"...)

muchas grcias por la respuesta, lo quiero para hacer un click en un objeto pero claro, el objeto es un reproductor de sonido, es para poder pausarlo al realizar otra accion por ello no me vale solo con hacer el click, si no hacerlo en una posición en concreta... es decir, por ejemplo, dentro del objeto en la posicion x=50 de dicho objeto... no se si podrá hacerse, digo yo que si el initMouseEvent admite los parámetros x e y debería poder hacerse de alguna forma no?
Mirad este enlace [URL="http://www.howtocreate.co.uk/tutorials/javascript/domevents"]http://www.howtocreate.co.uk/tutorials/javascript/domevents[/URL] y buscad la línea "Test it here: move your mouse over here and I will manually fire a mouseup event instead." parece q lo hace...
Muchas gracias por vuestras respuestas

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:17.