2014-09-04 84 views
1

根據Mixpanel's documentation on mixpanel.track_links,我可以傳入一個選擇器(對於他們的例子他們使用一個ID),選擇我想跟蹤的鏈接。我正在向客戶端傳遞一些跟蹤信息,並想知道我是否可以使用HTML5數據屬性作爲選擇器?我可以使用數據屬性作爲Mixpanel mixpanel.track_links的選擇器嗎?

所以軌道事件是這樣的:

mixpanel.track_links("[data-blah='dude']", "Clicked Data Attribute"); 

HTML5數據屬性查詢,能夠使用document.querySelectorAll,g雖然沒有對IE8 <不支持。

回答

0

我剛剛遇到同樣的問題,看起來你不能。

你可以輕易嘗試,如果你這樣做:

mixpanel.track_links('#existing-id-on-page', '..') => true 

函數將返回true但如果你這樣做:

mixpanel.track_links('#non-existing-id', '..') => undefined 

函數將返回undefined,一樣的,當你使用data-attributes

很傷心,我們不能使用數據屬性,類不是針對JS中的定位元素進行的! 無論如何,我希望我回答你的問題!

0

我創建了一個JavaScript(用jQuery)代碼,將識別數據屬性:

HTML:(此屬性的內容是一個JSON字符串[事件名稱,屬性]注意:它只能識別雙引號)

<a href="mailto:[email protected]" data-mp-track='["Contact Click", {"Type" : "Email"}]'>Contact</a>

的Javascript:

$('a[data-mp-track]').on('click', function(event) { 
    var callback, mp_details, new_tab, properties, that; 
    that = this; 
    new_tab = event.which === 2 || event.metaKey || that.target === '_blank'; 
    callback = function() { 
    if (new_tab) { 
     return; 
    } 
    window.location = that.href; 
    }; 
    mp_details = JSON.parse(that.getAttribute('data-mp-track')); 
    if (!new_tab) { 
    event.preventDefault(); 
    setTimeout(callback, 300); 
    } 
    properties = $.extend(mp_details[1], { 
    'Page Title': document.title, 
    'URL': window.location.pathname 
    }); 
    mixpanel.track(mp_details[0], properties, callback); 
}); 

得到了一些靈​​感來源於this post

相關問題