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);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc