mirror of
https://github.com/mainwp/mainwp-child.git
synced 2025-09-06 11:10:43 +08:00
62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
/**
|
|
* Mouse click tracking
|
|
*/
|
|
|
|
var trackerData = [];
|
|
|
|
jQuery(document).ready(function($){
|
|
|
|
|
|
$(document).click(function(e){
|
|
var element = $(e.target).parents().map(getSelector).get().reverse().join(">");
|
|
element += '>'+$(e.target).map(getSelector).get();
|
|
var url = ( $(e.target).attr('href') ) ? $(e.target).attr('href') : $(e.target).attr('src');
|
|
var title = $(e.target).attr('title');
|
|
var alt = $(e.target).attr('alt');
|
|
var text = ( $(e.target).text().length == $(e.target).html().length ) ? $(e.target).text().substring(0, 511) : '';
|
|
trackerData.push({
|
|
coord: e.pageX+','+e.pageY,
|
|
type: 'left',
|
|
viewport: $(window).width()+','+$(window).height(),
|
|
element: element,
|
|
url: url,
|
|
title: title,
|
|
alt: alt,
|
|
text: text
|
|
});
|
|
});
|
|
|
|
$(window).unload(function(){
|
|
sendTrackData(true); // Make sure to send track data before going off from page, set it synchronious
|
|
});
|
|
|
|
function getSelector()
|
|
{
|
|
var el_class = $(this).attr('class');
|
|
var el_id = $(this).attr('id');
|
|
var el_index = $(this).index();
|
|
return this.tagName + ( el_id ? '#'+el_id : '' ) +
|
|
( el_class ? '.'+el_class.match(/^\S+/) : '' ) +
|
|
( el_index > 0 ? ':eq('+(el_index)+')' : '' );
|
|
}
|
|
|
|
function sendTrackData( sync )
|
|
{
|
|
if ( trackerData.length < 1 )
|
|
return;
|
|
$.ajax({
|
|
data : {
|
|
data: trackerData,
|
|
action: 'heatmapSaveClick',
|
|
nonce: trackerNonce
|
|
},
|
|
complete: function(){
|
|
trackerData = [];
|
|
},
|
|
async: ( sync ) ? false : true,
|
|
type: 'POST',
|
|
url: trackerAjaxUrl
|
|
});
|
|
}
|
|
setInterval(function(){ sendTrackData(false); }, 10000);
|
|
});
|