Foros del Web » Programando para Internet » Javascript »

Detectar eventos por humanos no eventos por scripts

Estas en el tema de Detectar eventos por humanos no eventos por scripts en el foro de Javascript en Foros del Web. Hola buen día, He apreciado que en algunas páginas de alguna manera saben cuando la persona está activando los eventos de javascript por su mano ...
  #1 (permalink)  
Antiguo 03/11/2011, 13:56
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 10 meses
Puntos: 32
Detectar eventos por humanos no eventos por scripts

Hola buen día,

He apreciado que en algunas páginas de alguna manera saben cuando la persona está activando los eventos de javascript por su mano propia, es decir, usando el mouse y no algun script que ejecute ese evento.

Por ejemplo, si yo doy click en un boton con el mouse yo estoy activando realmente ese evento usando el click del ratón, por lo que sería considerado como "evento por humano" según el título de este tema.

Pero si yo pego y ejecuto un script que ejecute el evento de click, por ejemplo:
$("#algunBoton").click();, entonces sería "evento por script".

Cita:
¿Cómo puedo detectar por medio de javascript, si un evento fué iniciado por un humano o fué iniciado por un script?
Espero que puedan ayudar, gracias.
  #2 (permalink)  
Antiguo 03/11/2011, 14:03
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Detectar eventos por humanos no eventos por scripts

No estoy muy seguro, pero si lo que hay ahí es jQuery dudo que se genere un evento de verdad.
Sinceramente no conozco la estructura de jQuery, así que esto debería asegurártelo alguien que sepa más de FW, pero me imagino que lo que hace es almacenar los eventos bindeados a un elemento en algún array, y después al usar trigger ejecuta el elemento del array que contiene esa función. Sin embargo, o mucho me equivoco, o al hacer esto no generan un evento; se pueden crear con document.createEvent, pero creo que no funcionan en IE, y además no creo que lo hagan así, llámalo intuición
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 03/11/2011, 15:10
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 10 meses
Puntos: 32
Respuesta: Detectar eventos por humanos no eventos por scripts

Que tal _cronos2 gracias por responder.

Eso que puse de jQuery nadamas era un ejemplo de la llamada a un evento cualquiera de JavaScript, en lo que respecta a mi tema es lo mismo usar $("body").click() que document.body.click().

Creo que no me dado bien a entender, basicamente lo que quiero es saber ¿como se sabe cuando se da click con el mouse y/o cuando se da click con JavaScript(ej. ele.click()).?

Estoy seguro que a de ser alguna propiedad que tiene el objeto event que se dispone dentro de la funcion manejadora del evento, pero ya he buscado y no encuentro niguna que tenga que ver con esto.

Espero ya darme a entender bien, saludos.
  #4 (permalink)  
Antiguo 03/11/2011, 15:25
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Detectar eventos por humanos no eventos por scripts

Y... ¿de dónde sale elem.click()? Como no te refieras al evento onclick:
Código:
document.body.onclick = function(evt){ console.log(evt); }
document.body.onclick(); // evt es undefined, no genera evento
Si no es eso no estoy entendiendo cómo pretendes generar un evento desde el código.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 03/11/2011, 20:26
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 12 años, 10 meses
Puntos: 32
Respuesta: Detectar eventos por humanos no eventos por scripts

Esk tomando en cuenta el script k pusiste, para activarlo solo pueden ser de dos formas.

1. Una es dando click a la pagina.
2. La otra es dando click asi: "document.body.click()".

Entonces hay alguna forma de saber k click se esta dando, si el primero o el segundo???
  #6 (permalink)  
Antiguo 04/11/2011, 00:33
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Detectar eventos por humanos no eventos por scripts

Fíjate:
Código Javascript:
Ver original
  1. var via_script = function(evt){ alert(!evt); }
  2. document.body.onclick = via_script
  3. document.body.onclick(); // false, evt es undefined
  4. // Pero prueba a hacer click de verdad
Por supuesto siempre hablamos de non-IE, como siempre él tiene que ser diferente y usa un modelo de eventos diferente (window.event).
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #7 (permalink)  
Antiguo 04/11/2011, 00:37
Avatar de Hugo_Euan  
Fecha de Ingreso: abril-2011
Ubicación: Mérida, Yucatán, México
Mensajes: 193
Antigüedad: 13 años
Puntos: 71
Respuesta: Detectar eventos por humanos no eventos por scripts

Hola IXtremeLT

no sé si estoy entendiendo muy bien lo que pretendes....
sobre que el code se ejecute mediante script o que se ejecute por un usuario...

en todo caso... si logré entenderte bien... y por lo que vi del fragmento de código que pusiste $("#algunBoton").click(); con jQuery tu código se ejecuta automáticamente.... y lo que tu deseas es que se ejecute al hacer Click... solo es una suposición que hago... sobre tu código.. no necesariamente es una realidad... pero bien...

cuando añades evento a los elementos debes considerar....
si deseas ejecutar una función o asignar una funcion...
de esta manera... yo pude considerar que lo que necesitas es asignar una función ( la cual se ejecuta mediante el evento "x")
aquí un ejemplo para que el concepto quede mas claro....

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <title>Invocaci&oacute;n / Asignaci&oacute;n</title>
  4. <script>
  5. window.onload = function (){
  6.  
  7.     document.body.onclick = Invocacion(); //invocamos un procedimiento automaticamente
  8.         document.body.onclick = Asignacion; //invocamos un procedimiento mediante el evento
  9.  
  10.     function Invocacion(){
  11.         alert("llamada a procedimiento mediante invocación de script");
  12.     }
  13.    
  14.     function Asignacion(){
  15.         alert("llamada a procedimiento mediante Asignacion");
  16.     }
  17. }
  18.  
  19. </script>
  20.  
  21. </head>
  22. <body>
  23.     <div id="myBreak" style="width:100%; height:500px; overflow:scroll;">
  24.         Ejemplo de Invocaci&oacute;n / Asignaci&oacute;n
  25.     </div>
  26. </body>
  27. </html>

cave recalcar que en JavaScript una funcion es una variable... de esta manera es que podemos utilizar una función como tal....

en el primer caso cuando ponemos parentesis () estamos ejecutando la función directamente
mientras que en el segundo caso la estamos asignando simplemente.... y se ejecutará hasta que se produsca el evento.. sea cuál sea...
Espero te sea de utilidad... y que seá lo que buscabas....

SALUDOS y ÉXITO....
__________________
Se acepta Karma (:

Si Dios con nosotros, quien contra nosotros !!

Etiquetas: eventos, humanos, scripts, botones
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 15:26.