2009-10-28 63 views
6

He estado lidiando con un problema de Javascript de perdición de mi existencia que implica el seguimiento cuando un usuario hace clic en un enlace (en caso de que tenga curiosidad, aquí está: Why does using target="_blank" cause Javascript to fail?).Desventajas de onMousedown vs. onClick?

He descubierto que puedo resolver el problema rastreando un evento onMousedown en lugar de un evento onClick.

Tengo curiosidad acerca de los inconvenientes de este enfoque. Los que yo puedo pensar:

  1. Si un usuario hace clic sobre un enlace y luego se trasladó el ratón fuera del enlace antes de soltarlo, entonces el evento se registró a pesar de que el usuario no había visitado el enlace
  2. Si un usuario utiliza la tecla tAB para mover el foco del navegador para el enlace y luego pulsa enter, el clic no se registraría

Ninguno de estos son comunes, así que no estoy terriblemente preocupado por ellos.

¿Hay algún otro inconveniente que me falta?

Respuesta

6

Una más: el mousedown captura los clics de la derecha/centro también.

Pero por las dos razones, me pegaría a hacer clic. Conozco bastantes personas que usan navegación por teclado. Especialmente search-and-gotolink en FF. (/ Para buscar seguido de enter para ir al enlace).

Pero si estos dos no son un problema para usted, creo que los clics de derecha/medio no lo serán también.

Creo que la manera de realizar un seguimiento de todos los usuarios que siguen el enlace es bastante complicado - el usuario puede hacer clic derecho y haga clic en nueva pestaña/ventana nueva ...

+0

Estoy de acuerdo con tu post, pero molesta que la página de búsqueda de Google usa onmousedown en lugar de onclick para hacer un seguimiento de los clics, lo que sugiere que manejan estos problemas o al menos consideran las mejores prácticas de onmousedown. ¿Alguna idea? – Dunc

+0

No sé exactamente cómo google rastrea los clics, pero estos son algunos puntos que se me ocurren al usarlos en onmousedown: les interesa el porcentaje agregado de% de edades; algunos menos o más no importan. Con cualquiera de onclick/onmousedown, no hay una manera confiable de saber si el usuario ha seguido un enlace o no (usando onclick puede faltar clic derecho + abrir en una nueva pestaña, usar el mousedown puede hacer que cada clic derecho sea registrado como un enlace sigue). Sin embargo, el clic derecho podría significar que el usuario está de alguna manera interesado en el enlace. – Raze

+4

Además, el evento mousedown da más tiempo para enviar datos a Google antes de que se siga el enlace (la pequeña diferencia de tiempo después de presionar el botón del mouse y antes de soltarlo), suficiente para que se envíe una solicitud al servidor de Google. No estoy seguro si onclick dejará suficiente tiempo para esto. La opción alternativa, que Yahoo hace, es primero llevarlo a su servidor, y luego redirigirlo a su URL de interés. – Raze

Cuestiones relacionadas