2014-09-04 1 views
1

В соответствии с Mixpanel's documentation on mixpanel.track_links, я могу перейти в селектор (для их примера они используют идентификатор), чтобы выбрать ссылку, которую я хотел бы отслеживать. Я передаю отслеживание клиенту и хочу знать, могу ли я использовать атрибут данных HTML5 в качестве селектора?Могу ли я использовать атрибуты данных в качестве селекторов для Mixpanel mixpanel.track_links?

Так событие трека будет выглядеть следующим образом: атрибуты данных

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

HTML5 являются запросами в состоянии с помощью document.querySelectorAll, Althrough нет поддержки 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 строка [EventName Свойства]. Внимание: его распознают только двойные кавычки)

<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.