cookies_addons-1.0.3/modules/cookies_addons_embed_iframe/js/cookies-addons-embed-iframe.js

modules/cookies_addons_embed_iframe/js/cookies-addons-embed-iframe.js
/**
 * @file
 * Defines Javascript behaviors for the cookies addons embed iframe module.
 */
((Drupal, $) => {
  /**
   * Define defaults.
   */
  Drupal.behaviors.cookiesAddonsEmbedIframe = {
    consentGiven(context) {
      $('iframe.cookies-addons-embed-iframe', context).each((i, element) => {
        const $element = $(element);
        if ($element.attr('src') !== $element.data('src')) {
          // We only allow http / https protocols to be used in the 'src'.
          const src = $element.data('src');
          const protocolRegex = /^(https?)/;
          if (src.substring(0, 1) !== '/') {
            const protocol = src.split(':')[0];
            if (!protocolRegex.test(protocol)) {
              // The 'src' is not http nor https, continue to the next element.
              return;
            }
          }
          $element.attr('src', $element.data('src'));
        }
      });
    },

    consentDenied(context) {
      $(
        'iframe.cookies-addons-embed-iframe, div.iframe-embed-lazy',
        context,
      ).cookiesOverlay('iframe');
    },

    attach(context) {
      const self = this;
      document.addEventListener('cookiesjsrUserConsent', (event) => {
        const service =
          typeof event.detail.services === 'object'
            ? event.detail.services
            : {};
        if (typeof service.iframe !== 'undefined' && service.iframe) {
          self.consentGiven(context);
        } else {
          self.consentDenied(context);
        }
      });
    },
  };
})(Drupal, jQuery);

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

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