Как заставить скрипты завершить работу перед тем, как покинуть страницу (в браузерах webkit)? - PullRequest
0 голосов
/ 20 января 2011

Это уже хорошо работает в FireFox, IE и Opera, но в Chrome и Safari это проблема. У меня есть функция события onClick для ссылок, которая покидает страницу. Эти функции отправляют запросы в различные службы отслеживания для записи выходной ссылки.

Я проверил это, удалив атрибут href в ссылке. Когда он удален, ссылка отслеживается. Когда ссылка активна (и ведет от страницы), ссылка не отслеживается. Это только в Chrome и Safari.

Я надеялся, что есть какой-то не экстремальный способ заставить браузер завершить сценарий перед тем, как покинуть страницу. (Под экстремальным я имею в виду f.inst. Удаление атрибута href с использованием JavaScript и ручное перенаправление браузера после завершения отслеживания)

jQuery уже загружен в этот проект, поэтому было бы замечательно, если бы у него было решение.

Спасибо за любые советы

1 Ответ

0 голосов
/ 20 января 2011

Google Analytics _trackPageView не предлагает обратный вызов, поэтому у вас нет простого способа получить успешный обратный вызов, а затем перейдите на следующую страницу. Хотя для _trackEvent существует обратный вызов, который срабатывает каждый раз, когда происходит какое-либо событие GA. Вы можете попробовать это и послушать это так (убедитесь, что ваш href снова включен в ваши ссылки - это зависит от того, что вы там есть, плюс вы получите постепенное ухудшение):

$(".myLinkClass").click(function(e){
    e.preventDefault();
    var link = $(this).attr('href');
    pageTracker._trackPageview('/outbound/'+link);
    if (pageTracker._trackEvent("Outbound", "URL", link)) {
       window.location = link;
    }
});
...