Я пытаюсь использовать приведенный здесь код: Сделать пинг на URL без перенаправления . OP попросил ping url, не открывая несколько окон. Я хотел бы сделать это, но я хочу на самом деле посетить второй URL-адрес, чтобы отслеживать исходящие клики в своей аналитике сервера.
Вот код, который я пытаюсь сделать:
<a href="javascript:;" onclick="visitPageX()">link</a> function visitPageX() { // send Ajax request to the track URL setTimeout(function() { location.href = 'http://{pageXURL}'; }, 300); }
Тем не менее, я не понимаю, где я должен помещать свой «URL-адрес отслеживания». Вот моя попытка:
<a href="javascript:;" onclick="visitPageX()"><a href="http://externalsite.com/">anchor text</a></a> function visitPageX() { // send Ajax request to the track URL setTimeout(function() { location.href = 'http://externalsite.com/'; }, 300); }
Я застрял там, где положить
http://examplemysite.com/tracking.php?123
так что я могу подсчитать исходящие клики. Я был бы признателен, если бы вы могли помочь мне заставить этот код работать или обеспечить еще лучшее решение для отслеживания исходящих кликов без использования Google Analytics.
Ваша поддержка очень ценится.
В этом примере для краткости используется jQuery. Он также может быть написан с использованием ванильного javascript.
Здесь я взял URL-адрес отслеживания и добавил его как атрибут данных в тег привязки, чтобы различные ссылки могли легко иметь разные URL-адреса отслеживания. Я дал привязке класс trackme, который, как известно javascript, назначает функцию отслеживания этому конкретному тегу <a>
.
Javascript предотвращает по умолчанию загрузку href до тех пор, пока вызов ajax не завершится успешно или не сработает, а затем он загрузит href.
<html> <head> <script src='https://code.jquery.com/jquery-3.2.1.js'></script> <script type='text/javascript'> $(document).on("click", ".trackme", function (e) { e.preventDefault(); // stop browser from going to href right away var finalURL = this.href; $.ajax({ url: $(this).data("tracking-url"), success: function () { location.href = finalURL; }, error: function () { location.href = finalURL; } }); }); </script> </head> <body> <a href="http://google.com" data-tracking-url="http://examplemysite.com/tracking.php?123" class="trackme">anchor text</a> <a href="http://yahoo.com" data-tracking-url="http://examplemysite.com/tracking.php?124" class="trackme">anchor text</a> </body> </html>