2014-09-04 61 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

相关问题