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ć:
- 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
- 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?
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
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
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