MediaWiki:Gadget-sidebar-tracking.js
After saving, you may need to bypass your browser's cache to see the changes. For further information, see Wikipedia:Bypass your cache.
- In most Windows and Linux browsers: Hold down Ctrl and press F5.
- In Safari: Hold down ⇧ Shift and click the Reload button.
- In Chrome and Firefox for Mac: Hold down both ⌘ Cmd+⇧ Shift and press R.
;(function($, mw){
function trackSidebarClick(event) {
var $e = $(event.currentTarget),
pagename = mw.config.get('wgPageName'),
href,
click_type,
data;
href = $e.attr('href');
switch (event.which) {
case 1:
click_type = 'left';
if (!(event.altKey || event.ctrlKey || event.altKey || event.metaKey)) {
$e.attr({'x-href': href, 'x-leftclicked':'1'}).removeAttr('href');
}
break;
case 2:
click_type = 'middle';
break;
case 3:
click_type = 'right';
break;
default:
click_type = 'other: '+event.which;
}
if (event.shiftKey) {
click_type += '-shift';
}
if (event.ctrlKey) {
click_type += '-control';
}
if (event.altKey) {
click_type += '-alt';
}
if (event.metaKey) {
click_type += '-meta';
}
data = {
page: pagename,
link: href,
click: click_type,
wiki: mw.config.get('wgDBname')
};
console.log('Sending sidebar click data:', data);
var req = $.ajax('https://chisel.weirdgloop.org/gazproj/track/sidebar', {
method: 'POST',
data: data
});
req.done(function(d, s, xhr){
console.log('Data (success): ', d, s, xhr);
if (click_type === 'left' && $e.attr('x-leftclicked') === '1') {
$e.attr({'href':$e.attr('x-href'), 'x-leftclicked':'0'});
$e.get(0).click();
}
});
req.fail(function(d, s, xhr){
console.log('Data (fail): ', d, s, xhr);
if (click_type === 'left' && $e.attr('x-leftclicked') === '1') {
$e.attr({'href':$e.attr('x-href'), 'x-leftclicked':'0'});
$e.get(0).click();
}
});
}
function init(){
$('#mw-panel a[href]:not([target])').on('mousedown', trackSidebarClick);
}
$(init);
})(jQuery, mw);