etracker-8.x-3.x-dev/js/etracker.js
js/etracker.js
/** * @file * Defines Javascript behaviors for the etracker module. */ (function (drupalSettings) { // Register event listener only if any setting is enabled. if ( drupalSettings.etracker.track_mailto || drupalSettings.etracker.track_download || drupalSettings.etracker.track_external ) { // Attach mousedown, keyup, touchstart events to document only ['mousedown', 'keyup', 'touchstart'].forEach(function (e) { document.querySelector('body').addEventListener(e, function (event) { if (event.target.tagName === 'A' || event.target.tagName === 'AREA') { // Mailto link clicked. if ( drupalSettings.etracker.track_mailto && event.target.href.startsWith('mailto:') ) { _etracker.sendEvent( new et_ClickEvent( (`E-Mail:%20${event.target.href.substring(7)}`, 'E-Mail'), ), ); } // Download link clicked. else if ( drupalSettings.etracker.track_download && new RegExp( `\\.(${drupalSettings.etracker.track_download_extensions .split(' ') .join('|')})(\\?|$)`, ).test(event.target.href) ) { _etracker.sendEvent( new et_UserDefinedEvent(event.target.href, 'Download'), ); } // External link clicked. else if ( drupalSettings.etracker.track_external && event.target.host !== window.location.host ) { _etracker.sendEvent( new et_UserDefinedEvent( `External link:%20${event.target.href}`, '', ), ); } } }); }); } // Trigger events for each message being displayed. if (drupalSettings.etracker.messages.length > 0) { drupalSettings.etracker.messages.forEach(function (message) { const clickEvent = new et_UserDefinedEvent( message.text, 'Message', message.type, '', ); _etracker.sendEvent(clickEvent); }); } })(drupalSettings);