Как отслеживать ссылки с помощью jQuery и публиковать их на сервере без отмены при перенаправлении? - PullRequest
0 голосов
/ 21 октября 2018

Мы создаем наш инструмент отслеживания и хотим отслеживать CTA на нашем веб-сайте.

Вот код для этого:

<script type="text/javascript">
   var $ = jQuery;         
   $("a").click(function () {
            var link = $(this);
            var href = link.attr('href');
            var noProtocol = href.replace(/http[s]?:\/\//, '');
            $.ajax({
                type: 'GET',
                url: 'https://ipinfo.io/json?token=369f3980fa1a62',
                success: function (response) {
                    $.ajax({
                        type: 'POST',
                        url: 'https://myserver.com/api/events',
                        headers: {},
                        crossDomain: true,
                        data: JSON.stringify({
                            'distinct_id': '',
                            'name': 'button_clicked',
                            'page': noProtocol,
                            'domain': document.domain,
                            'referrer': document.referrer,
                            'ip_address': response.ip,
                            'region': response.region,
                            'postal': response.postal,
                            'location': response.loc,
                            'country': response.country,
                            'city': response.city

                        }),
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (msg) {
                            //do nothing
                            console.log(msg);
                        }
                    });
                }
            });
        });

</script>

Когда кто-то нажимает на ссылку, он начинает отправлять сообщения на наш сервер, но поскольку тег перенаправляет страницу, запрос отменяется.Как избежать отмены этого запроса?

1 Ответ

0 голосов
/ 21 октября 2018

Одна вещь, которую вы можете сделать, это перехватить все ссылки и переписать их таким образом, чтобы в конечном итоге пришлось вызывать функцию, которая в конечном итоге выполняет перенаправление.1005 *

Добавьте скрипт после всех ваших HTML-элементов непосредственно перед </body>

(function() {
    // Do your element manipulation here
})();

Затем вы можете создать событие onClick для всех a тегов с помощью data-href, где вы можете отслеживать, а затемв конечном итоге перенаправить.

var elements = document.querySelectorAll(a[data-href]);

elements.forEach(function(elemement) {
    elemement.addEventListener("click", function(e) {
        // Do something cool here
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...