Ho avuto a che fare con un burrascoso problema di Javascript che coinvolge il monitoraggio quando un utente fa clic su un collegamento (nel caso in cui siate curiosi, eccolo: Why does using target="_blank" cause Javascript to fail?).Aspetti negativi di onMousedown vs. onClick?
Ho capito che posso risolvere il problema monitorando un evento onMousedown piuttosto che un evento onClick.
Sono curioso degli aspetti negativi di questo approccio. Quelli mi viene in mente:
- Se un utente fa clic su un link e poi spostato il mouse fuori il link prima di rilasciarlo, quindi l'evento sarebbe registrato anche se l'utente non aveva visitato il link
- Se un utente utilizza il tasto tab per spostare il focus browser al link e poi premi invio, il clic non sarebbe stato registrato
Nessuno di questi sono comuni, quindi non sono terribilmente preoccupati per loro.
Ci sono altri aspetti negativi che mi mancano?
Sono d'accordo con il tuo post, ma dà fastidio io che la pagina di ricerca di Google utilizza onmousedown anziché onclick per tracciare i clic, il che suggerisce che gestiscono questi problemi o almeno considerano le best practice di base. qualche idea? – Dunc
Non so esattamente come Google tiene traccia dei clic, ma questi sono alcuni punti su cui posso pensare di utilizzarli su onmousedown: sono interessati al click aggregato di età - pochi o meno non contano. Utilizzando onclick/onmousedown, non esiste un modo affidabile per sapere se l'utente ha seguito o meno un collegamento (utilizzando onclick può mancare il clic con il tasto destro del mouse + aprire in una nuova scheda, usando il mouse può fare in modo che ogni clic con il tasto destro venga registrato come segue un link). Tuttavia, il tasto destro potrebbe significare che l'utente è in qualche modo interessato al collegamento. – Raze
Inoltre, l'evento Mousedown dà più tempo per inviare dati a Google prima che il collegamento sia seguito (la piccola differenza di tempo dopo aver premuto il pulsante del mouse e prima di rilasciarlo) - abbastanza per una richiesta da inviare al server di Google. Non sono sicuro se onclick lascerà abbastanza tempo per questo. L'opzione alternativa, che Yahoo fa, è quella di portarti prima al loro server, e poi reindirizzarti al tuo URL di interesse. – Raze