2012-01-10 48 views
2

我有以下鏈接來追蹤跨網站谷歌分析旅行:與OnClick事件鏈接的任何不會觸發/工作的原因?

<a href="http://example.com/test.html" 
    onclick="_gaq.push(['_link', 'http://example.com/test.html']); 
    return false;"  
    class="noFloat" 
    target="_blank"> 
    Click Me 
</a> 

我試圖調試爲什麼這個鏈接,但它不工作,我點擊它,並沒有新的窗口將打開。只是想確認這是上述代碼的問題,還是會在我的網頁上出現其他問題,以解決此問題?如果是的話,我會回到調試javascript。

+0

大多數瀏覽器都有開發工具,它會告訴你錯誤是否存在。在Chrome和IE中按F12。另外,'JScript'和'JavaScript'對於不同的語言,雖然相似,但它們有不同之處。 – 2012-01-10 10:16:49

+0

非常感謝Jscript vs Javascript提示沒有意識到這一點。我一直在尋找,但沒有雪茄會更深入。只是想確認一下,並在鏈接上獲得第二組眼睛來確認,語法很好。 jscript和javascript之間的區別:http://stackoverflow.com/questions/135203/whats-the-difference-between-javascript-and-jscript – Anicho 2012-01-10 10:23:18

回答

3

正在被return false;防止鏈接行爲。爲了讓鏈接照常完成,只需將其刪除:

<a href="http://example.com/test.html" 
    onclick="_gaq.push(['_link', 'http://example.com/test.html']);"  
    class="noFloat" 
    target="_blank"> 
    Click Me 
</a> 
+0

配合你絕對正確,不知道爲什麼我沒有看過之前,我有過去遇到類似的問題。我還必須補充說,我們需要定義'_gaq.push(['_ setDomainName','example-petstore.com']);'example.petstore.com應該是你當前所在的域。沒有這個定義,_.gaq.push方法就會失敗,或者說我會陷入一個我在調試時注意到的循環中。 – Anicho 2012-01-10 10:57:38

+1

在onlick事件之前定義了target =「_ blank」,像魅力一樣工作,並且可以保持返回錯誤,就是在同一個窗口中加載鏈接_gaq.push。 – Anicho 2012-01-10 11:55:06

+0

羅裏的答案是正確的,但不完整。如果不首先了解Google Analytics的「_link」方法(它在完成時會導致重定向),請不要刪除「返回false」。有關詳細信息,請參閱下面的回覆。 – 2014-05-03 16:08:00

0

什麼:

<a href="#" onclick="Clicked();" class="noFloat" target="_blank"> 
    Click Me 
</a> 

function Clicked() 
{ 
_gaq.push(['_link', 'http://example.com/test.html']); 
window.location = "http://example.com/test.html"; 
return false; 
} 
2

傳遞您正在使用,如果該鏈接在新窗口中(target="_blank")打開將無法正常工作的cookie信息,返回假的直列方式基本上覆蓋了該標籤的功能。

你必須改變<a> -tag的href=""

<a href="http://example.com/test.html" 
    id="ext-link"  
    class="noFloat" 
    target="_blank"> 
    Click Me 
</a> 

然後有以下的javascript:

_gaq.push(function() { 
    var pt = _gat._getTrackerByName(), 
     link = document.getElementById('ext-link'); 
    link.href = pt._getLinkerUrl(link.href); 
}); 
+0

我遇到了這個問題,並意識到我用來跟蹤OutboundLink的JS名爲document.location = url,它沒有指定目標。它改變後,它的工作window.open(url,'_blank'); – fseminario 2015-10-02 21:10:44

0

我發現,如果你的腳本中的默認分析鏈接代碼中斷標記不在頭部的文件中。

+0

對我來說並不重要 – fseminario 2015-10-02 21:02:19

0

Rory McCrossan是正確的,「返回false」將停止鏈接的默認行爲,但這是對這種情況的不完整答案。推送到Google Analytics(GA)的「_link」方法會在完成處理後導致重定向。 GA需要時間來完成。詳情請參閱:http://bit.ly/1iasHQh

GA重定向失敗的原因是由於另一個問題。兩種理論:(1)我曾經遇到過這種情況,並意識到這是因爲我使用的是Chrome,並且安裝了「Google Analytics停用加載項」。 (2)「_link」方法可能與使用target =「_ blank」不兼容。如果使用目標打開一個新窗口/選項卡,則可以安全地刪除「返回false」;因爲處理Javascript的當前頁面不會關閉,這仍然會讓GA執行它的操作。

希望能幫助別人。

0

通過答案後,他們都沒有完全工作。就我而言,我有一個鏈接結構爲這樣:在頁腳

<a href="http://www.google.com/" target="_blank" onclick="trackOutboundLink('http://www.google.com'); return false;" > 
Outbound Link</a> 

破碎JS

var trackOutboundLink = function(url) { 
    ga('send', 'event', 'outbound', 'click', url, {'hitCallback': 
    function() { 
    document.location = url; 
    } 
    }); 
} 

在頁腳固定JS:

var trackOutboundLink = function(url) {  
ga('send', 'event', 'outbound', 'click', url, {'hitCallback': 
    function() { 
    window.open(url, '_blank'); 
    }  
}); 
} 

本來JS沒有指定目標所以它在同一個窗口中打開。刪除「return false」允許href和onclick觸發,這導致打開兩個窗口。