Licznik kliknięć w hiperłącze

0

Cześć.
Mam działający licznik z nasłuchu kliknięć w buttona połączony z bazą danych, ale chcę go zmienić na hiperłącze (). Niestety zanim licznik zadziała po kliknięciu w hiperłącze, załaduje się druga strona, do której jest link, a w bazie nie ma odnotowanego kliknięcia. Jakich funkcji muszę użyć, bez pakowania buttona w link?

2

Jeśli chcesz zrobić to w taki sposób to:

  1. Musisz zatrzymać domyślne przekierowanie przez e.preventDefault(),
  2. Wykonać swój skrypt,
  3. Później zrobić drugie przekierowanie przy pomocy locarion.href.
const anchor = document.querySelector("a.special-link");

anchor.adsEventListener("click", function(e){
    e.preventDefault();

    // tutaj Twój skrypt

   location.href = e.currentTarget.href; // zostanie wykonane przekierowanie na adres z href
});
1

Albo, skoro masz już jakaś bazę, to niech licznik się aktualizuje po sobie serwera. W sensie że serwer po otrzymaniu żądania wyświetlenia danej strony sam sobie robi update statystyk.

0

Hmm, a nie będzie najlepiej sprząc stronę z Google Analytics? Po kliknięciu wysyłasz event do GA, a w callbacku robisz redirect. Coś takiego: https://developers.google.com/analytics/devguides/collection/analyticsjs/sending-hits#hitcallback, tylko że zamiast form, masz link.

Dzięki temu dużo lepiej możesz sobie trackować jakieś rzeczy, niż robić to po swojemu.

3

Jest też coś takiego:
https://usefulangle.com/post/289/a-tag-ping-attribute

Odwala całą robotę za Ciebie, ale w FF jest domyślnie wyłączone.

0

Skorzystałem z rozwiązania od Xarviel. Skrypt musi być niesynchroniczny, wykorzystałem XMLHttpRequest.

1 użytkowników online, w tym zalogowanych: 0, gości: 1