2012-04-27 53 views
4

假設我需要使用谷歌分析腳本來跟蹤我的點擊次數。 我知道,以確保跟蹤事件的標準方法被解僱是連續通入跟蹤隊列和報酬的單擊事件處理假的,就像這樣:同步,如何確保執行谷歌分析跟蹤請求

$('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以外的所有瀏覽器中彈出新窗口,並且默認情況下此窗口通常會被阻止。
這意味着我必須從點擊處理程序返回true

所以這是我需要以某種方式同步等待GA腳本要求它的像素跟蹤背後其實我的理由。 某種What is the JavaScript version of sleep()?函數能幫助我嗎?

謝謝!

回答

7

要確保跟蹤像素的唯一原因之前,訪問者帶到新的頁面被髮射了,是那個帶你到一個新的頁面在同一窗口內鏈接。換句話說,您希望確保跟蹤代碼在當前窗口卸載之前完成其工作。

如果您的鏈接打開一個新窗口......不管你是如何打開新窗口的......你不需要擔心這樣的事情,因爲沒有被卸載當前窗口。

+1

哈哈!我很愚蠢,我知道:)非常感謝! – IlliakaillI 2012-04-27 17:39:05

+0

我做了同樣的事情。一直認爲我的鏈接不是_blank。 +1 – 2014-03-07 17:46:54