2012-04-27 3 views
4

Предположим, мне нужно отслеживать мои клики с помощью скриптов Google Analytics. Я знаю, что стандартный подход для обеспечения отслеживания событий был уволен, чтобы передать продолжение в очереди отслеживания и возврата фальшь обработчик события клика, как это:Синхронно, чтобы убедиться, что был выполнен запрос отслеживания Google Analytics.

$('a').click(function() { 
    var url = $(this).attr('href'); 
    _gaq.push(['_trackEvent', smth]); 
    _gaq.push(function(){ document.location = url ;} 
    return false; 
}); 

Моя задача состоит в том, что я хочу, чтобы открыть эту ссылку в новая вкладка.
Мое идеальное решение - target = "_ blank", но вы не можете сделать это с помощью javascript.
window.open (url, '_ blank') всплывает в новом окне во всех браузерах, кроме firefox, и это окно обычно блокируется по умолчанию.
Это означает, что I должен вернуть true из обработчика кликов.

Так что это моя причина в том, что мне нужно каким-то образом ждать синхронного сценария ga, чтобы запросить его отслеживание. Является ли какая-то функция What is the JavaScript version of sleep()??

Спасибо!

ответ

7

Единственная причина, по которой вы хотите, чтобы пиксель отслеживания был уволен до того, как посетитель был взят на новую страницу, предназначен для ссылок, которые ведут вас на новую страницу в том же окне. Другими словами, вы хотите, чтобы код отслеживания выполнял свою работу до того, как текущее окно будет выгружено.

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

+1

ха-ха! Я глуп, я знаю :) Большое спасибо! – IlliakaillI

+0

Я сделал то же самое. Я думал, что мои ссылки не были пустыми. +1 –