2017-03-10 111 views
0

我一直在使用堆棧溢出多年,但我第一次張貼希望簡單的jQuery解決方案,我想不出。谷歌分析跟蹤點擊,沒有提供網址

我正在經營一個網站,並且想跟蹤出站鏈接。我已閱讀並實施了https://support.google.com/analytics/answer/1136920?hl=en。我使用wordpress,並且它非常煩人地調整每個鏈接,尤其是標題鏈接,所以我想添加一個javascript/jquery腳本來捕獲所有鏈接上的點擊事件以及鏈接鏈接。

谷歌分析說,使用下面的代碼在每一個HTML鏈接標籤:

<a href="http://www.example.com" onclick="trackOutboundLink('http://www.example.com'); return false;">Check out example.com</a>

,但我想只寫由上的所有點擊觸發一個簡單的jQuery功能我的網站上的任何鏈接,並填寫trackOutboundLink("")與任何鏈接。有沒有$this.href()或我可以在這種情況下使用的東西?

基本上,我只想對所有鏈接事件偵聽器,並記錄他們這樣的:

$("a").click(function() {trackOutboundLink($this.a.href)});

對不起,我知道我的問題是生病措辭,我就是一個巨大的jQuery n00b,但不知道更好的方法來問它......而且,我確實希望記錄每個鏈接,甚至是內部鏈接。我不在乎。我只想要一種超級簡單的方式來記錄鏈接。

在此先感謝您的幫助!

+0

我想你想要這個'$(this).attr('href')' – jonmrich

回答

0

首先你需要一個選擇器來選擇所有出站的URL。他們的特點之一是它們通常包含某種形式的協議。然後,您排除指向您的域的所有鏈接。最後,您使用一個簡單的單擊事件來防止導航的默認行爲,而是執行將使用戶通過回調導航的跟蹤代碼。

jQuery(function ($) { 
    var domain = "example.com"; 
    $('a[href*=http]:not([href*=\'' + domain + '\'])').on('click', function (e) { 
    var url = $(this).attr('href'); 
    e.preventDefault(); 
    ga('send', 'event', 'outbound', 'click', url, { 
     'transport': 'beacon', 
     'hitCallback': function(){document.location = url;} 
    }); 
    }); 
}); 
+0

這很完美!謝謝一堆! – AndyF