2009-10-28 10 views
6

mam do czynienia z problemem bane-of-my-istnienia Javascript udziałem śledzenie, gdy użytkownik kliknie na link (w przypadku jesteś ciekawy, to jest tutaj: Why does using target="_blank" cause Javascript to fail?).Wady strony onMousedown vs. onClick?

Mam zorientowali się, że mogę rozwiązać ten problem raczej śledzenia onmousedown zdarzenie niż zdarzenie onClick.

jestem ciekawy temat wad tego podejścia. Te mogę myśleć:

  1. Jeśli użytkownik kliknął na odnośnik w dół, a następnie przeniósł myszy off link przed wypuszczeniem go, to zdarzenie zostanie zapisane mimo że użytkownik nie odwiedził link
  2. Jeśli użytkownik używany klawisz tAB, aby przejść do przeglądarki ostrość link, a następnie naciśnij enter, kliknij nie byłyby rejestrowane

Żadna z nich są wspólne, więc nie jestem strasznie martwi się o nich.

Czy są inne wady, których mi brakuje?

Odpowiedz

6

Jeszcze jedno: mousedown przechwytuje również kliknięcia w prawo/w środku.

Ale dla swoich dwóch powodów, by trzymać się onclick. Znam sporo osób używających klawiatury. Szczególnie szukanie i otrzymywanie w FF. (/ Do wyszukiwania, po którym następuje enter, aby przejść do linku).

Ale jeśli te dwa nie stanowią dla ciebie problemu, myślę, że kliknięcia w prawo/w środku też by nie były.

Myślę, że sposób, aby śledzić wszystkich użytkowników, którzy w link jest dość trudne - użytkownik mógł kliknąć prawym przyciskiem myszy i kliknij na nowej karcie/nowym oknie ...

+0

zgadzam się z Twojego postu, ale to nie przeszkadza że strona wyszukiwania Google używa onmousedown, a nie onclick do śledzenia kliknięć, co sugeruje, że radzą sobie z tymi problemami lub przynajmniej zastanawiają się nad najlepszą praktyką. jakieś pomysły? – Dunc

+0

Nie wiem dokładnie, jak Google śledzi kliknięcia, ale są to punkty, o których mogę pomyśleć, jeśli chodzi o ich używanie przy użyciu onmousedown: są zainteresowani łącznym kliknięciem% wieków - kilka mniej lub więcej nie ma znaczenia. Korzystanie z funkcji onclick/onmousedown nie daje wiarygodnego sposobu sprawdzenia, czy użytkownik podążył za linkiem, czy nie (użycie opcji onclick może spowodować brak kliknięcia prawym przyciskiem myszy + otwarcie w nowej karcie, użycie mousedown może spowodować rejestrację każdego kliknięcia prawym przyciskiem myszy jako link poniżej). Jednak kliknięcie prawym przyciskiem może oznaczać, że użytkownik jest w jakiś sposób zainteresowany linkiem. – Raze

+4

Ponadto, wydarzenie mousedown daje więcej czasu na przesłanie danych do Google przed podążeniem za linkiem (mała różnica czasu po naciśnięciu przycisku myszy i przed jego zwolnieniem) - wystarczy, aby wysłać żądanie do serwera Google. Nie wiem, czy onclick pozostawi wystarczająco dużo czasu na to. Alternatywna opcja, którą wykonuje Yahoo, polega na tym, że najpierw przeniesie Cię do swojego serwera, a następnie przekieruje Cię do interesującego Cię adresu URL. – Raze