2011-01-20 7 views
0

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

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

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

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

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

+0

Если удалить HREF, как это отслеживается? У вас есть «onclick» на ярлыке? Это ярлык? Не могли бы вы разместить образец кода? –

+0

Как я сказал в главном посте: у меня есть ссылка на функцию события onclick. Функция просто вызывает код отслеживания из Yahoo! Web Analytics и Google Analytics. Это действительно так просто, как кажется, поэтому нет необходимости в образце кода. – Hubro

ответ

0

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; 
    } 
}); 
Смежные вопросы