Skip to content

Duplicate script code in footer #12

@Ciantic

Description

@Ciantic
  1. Go to view-source: https://www.dude.fi/
  2. Search e.g. if ( cc.allowedCategory( 'analytics' ) ) { you find it twice!

Plugin seems to duplicate whole three items twice, here is snippet from dude.fi:

<script src="https://www.dude.fi/content/plugins/air-cookie/assets/cookieconsent.js?ver=2.9.1" id="cookieconsent-js"></script>
<script id="cookieconsent-js-after">
function dudeSwupAircookieInit() {
        var cc = initCookieConsent();

        airCookieSettings = {"cookie_name":"air_cookie","revision":2412150750,"cookie_expiration":182,"auto_language":false,"current_lang":"fi","autorun":true,"page_scripts":true,"delay":"0","gui_options":{"consent_modal":{"layout":"box","position":"bottom left"}},"languages":{"fi":{"consent_modal":{"title":"K\u00e4yt\u00e4mme verkkosivuillamme ev\u00e4steit\u00e4","description":"K\u00e4yt\u00e4mme ev\u00e4steit\u00e4 k\u00e4ytt\u00f6kokemuksesi parantamiseksi ja sivuston kehitt\u00e4miseksi. Osaa ev\u00e4steist\u00e4 k\u00e4ytet\u00e4\u00e4n analytiikkaan, markkinointiin ja sen kohdentamiseen.<br\/><br\/><button type=\"button\" data-cc=\"c-settings\" class=\"cc-link\">Lis\u00e4tietoa ja asetukset<\/button>. Voit muuttaa asetuksia koska tahansa sivuston alaosassa olevasta linkist\u00e4.","primary_btn":{"text":"Salli ev\u00e4steet","role":"accept_all"},"secondary_btn":{"text":"Vain v\u00e4ltt\u00e4m\u00e4tt\u00f6m\u00e4t","role":"accept_necessary"}},"settings_modal":{"title":"Ev\u00e4steasetukset","save_settings_btn":"Tallenna asetukset","accept_all_btn":"Hyv\u00e4ksy kaikki","blocks":[{"title":"Ev\u00e4steiden k\u00e4ytt\u00f6","description":"K\u00e4yt\u00e4mme sivustolla yhteisty\u00f6kumppaneidemme kanssa ev\u00e4steit\u00e4 mm. toiminnallisuuteen, mainonnan ja sosiaalisen median liit\u00e4nn\u00e4isten toteuttamiseen sek\u00e4 sivuston k\u00e4yt\u00f6n analysointiin. K\u00e4vij\u00e4tietoja voidaan jakaa sosiaalisen median palveluja, verkkomainontaa tai analytiikkapalveluja tarjoavien kumppaneiden kanssa. Ev\u00e4steiden tallennusaika vaihtelee sen tyypist\u00e4 riippuen. Poistoajankohdan ylitt\u00e4neet ev\u00e4steet poistuvat automaattisesti."},{"title":"V\u00e4ltt\u00e4m\u00e4tt\u00f6m\u00e4t","description":"V\u00e4ltt\u00e4m\u00e4tt\u00f6m\u00e4t ev\u00e4steet sallivat perustoimintojen k\u00e4yt\u00f6n ja auttavat tekem\u00e4\u00e4n sivustosta toimivan. Verkkosivusto ei toimi kunnolla ilman n\u00e4it\u00e4 ev\u00e4steit\u00e4 ja ne ovat siksi pakolliset.","toggle":{"value":"necessary","enabled":true,"readonly":true}},{"title":"Toiminnalliset","description":"Toiminnalliset ev\u00e4steet mahdollistavat sivuston paremman toiminnan ja joidenkin kolmansien osapuolien palveluiden, kuten asiakaspalveluchatin lataamisen.","toggle":{"value":"functional","enabled":false,"readonly":false}},{"title":"Analytiikka","description":"Analytiikka auttaa meit\u00e4 ymm\u00e4rt\u00e4m\u00e4\u00e4n, miten voisimme kehitt\u00e4\u00e4 sivustoa paremmaksi. Yhteisty\u00f6kumppanimme voivat k\u00e4ytt\u00e4\u00e4 ev\u00e4steit\u00e4 my\u00f6s markkinoinnin kohdentamiseen.","toggle":{"value":"analytics","enabled":false,"readonly":false}},{"title":"Upotteet","description":"Sivuston sis\u00e4ll\u00f6iss\u00e4 k\u00e4ytet\u00e4\u00e4n upotteita mm. videopalveluista ja sosiaalisen median palveluista. Sallimalla upotteiden ev\u00e4steet, n\u00e4et sivuston kaiken sis\u00e4ll\u00f6n. Upotepalvelut saattavat k\u00e4ytt\u00e4\u00e4 ev\u00e4steit\u00e4 omaan analytiikkaansa ja markkinoinnin kohdentamiseen. ","toggle":{"value":"embeds","enabled":false,"readonly":false}}]}}}}
          airCookieSettings.onAccept = function() {
        
  if ( cc.allowedCategory( 'necessary' ) ) {
        var elements = document.querySelectorAll('[data-aircookie-remove-on="accept-necessary"]');
    for (var i = 0; i < elements.length; i++) {
      elements[i].remove();
    }

        const air_cookie_necessary = new CustomEvent( 'air_cookie_necessary' );
    document.dispatchEvent( air_cookie_necessary );

        const air_cookie = new CustomEvent( 'air_cookie', {
      detail: {
        category: 'necessary'
      }
    } );
    document.dispatchEvent( air_cookie );

      }

  
  if ( cc.allowedCategory( 'functional' ) ) {
        var elements = document.querySelectorAll('[data-aircookie-remove-on="accept-functional"]');
    for (var i = 0; i < elements.length; i++) {
      elements[i].remove();
    }

        const air_cookie_functional = new CustomEvent( 'air_cookie_functional' );
    document.dispatchEvent( air_cookie_functional );

        const air_cookie = new CustomEvent( 'air_cookie', {
      detail: {
        category: 'functional'
      }
    } );
    document.dispatchEvent( air_cookie );

      }

  
  if ( cc.allowedCategory( 'analytics' ) ) {
        var elements = document.querySelectorAll('[data-aircookie-remove-on="accept-analytics"]');
    for (var i = 0; i < elements.length; i++) {
      elements[i].remove();
    }

        const air_cookie_analytics = new CustomEvent( 'air_cookie_analytics' );
    document.dispatchEvent( air_cookie_analytics );

        const air_cookie = new CustomEvent( 'air_cookie', {
      detail: {
        category: 'analytics'
      }
    } );
    document.dispatchEvent( air_cookie );

    (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-N8TT42P');
    }

  
  if ( cc.allowedCategory( 'embeds' ) ) {
        var elements = document.querySelectorAll('[data-aircookie-remove-on="accept-embeds"]');
    for (var i = 0; i < elements.length; i++) {
      elements[i].remove();
    }

        const air_cookie_embeds = new CustomEvent( 'air_cookie_embeds' );
    document.dispatchEvent( air_cookie_embeds );

        const air_cookie = new CustomEvent( 'air_cookie', {
      detail: {
        category: 'embeds'
      }
    } );
    document.dispatchEvent( air_cookie );

      manager.acceptService( 'all' );
    }

        }

      airCookieSettings.onFirstAction = function() {
        airCookierecordConsent();
      }

      airCookieSettings.onChange = function() {
        airCookierecordConsent();

        
  if ( cc.allowedCategory( 'necessary' ) ) {
        var elements = document.querySelectorAll('[data-aircookie-remove-on="accept-necessary"]');
    for (var i = 0; i < elements.length; i++) {
      elements[i].remove();
    }

        const air_cookie_necessary = new CustomEvent( 'air_cookie_necessary' );
    document.dispatchEvent( air_cookie_necessary );

        const air_cookie = new CustomEvent( 'air_cookie', {
      detail: {
        category: 'necessary'
      }
    } );
    document.dispatchEvent( air_cookie );

      }

  
  if ( cc.allowedCategory( 'functional' ) ) {
        var elements = document.querySelectorAll('[data-aircookie-remove-on="accept-functional"]');
    for (var i = 0; i < elements.length; i++) {
      elements[i].remove();
    }

        const air_cookie_functional = new CustomEvent( 'air_cookie_functional' );
    document.dispatchEvent( air_cookie_functional );

        const air_cookie = new CustomEvent( 'air_cookie', {
      detail: {
        category: 'functional'
      }
    } );
    document.dispatchEvent( air_cookie );

      }

  
  if ( cc.allowedCategory( 'analytics' ) ) {
        var elements = document.querySelectorAll('[data-aircookie-remove-on="accept-analytics"]');
    for (var i = 0; i < elements.length; i++) {
      elements[i].remove();
    }

        const air_cookie_analytics = new CustomEvent( 'air_cookie_analytics' );
    document.dispatchEvent( air_cookie_analytics );

        const air_cookie = new CustomEvent( 'air_cookie', {
      detail: {
        category: 'analytics'
      }
    } );
    document.dispatchEvent( air_cookie );

    (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-N8TT42P');
    }

  
  if ( cc.allowedCategory( 'embeds' ) ) {
        var elements = document.querySelectorAll('[data-aircookie-remove-on="accept-embeds"]');
    for (var i = 0; i < elements.length; i++) {
      elements[i].remove();
    }

        const air_cookie_embeds = new CustomEvent( 'air_cookie_embeds' );
    document.dispatchEvent( air_cookie_embeds );

        const air_cookie = new CustomEvent( 'air_cookie', {
      detail: {
        category: 'embeds'
      }
    } );
    document.dispatchEvent( air_cookie );

      manager.acceptService( 'all' );
    }

        }
    
        cc.run( airCookieSettings );

          var cookieconsent_element = document.querySelector('div#cc_div div#cm');
      if( typeof( cookieconsent_element ) != 'undefined' && cookieconsent_element != null ) {
        cookieconsent_element.style = 'max-width: 30em;';
      }
    
        function airCookierecordConsent() {
            if ( null === cc.get( 'data' ) || ! ( "visitorid" in cc.get( 'data' ) ) ) {
        cc.set( 'data', {value: {visitorid: '882d320d-a3ef-495b-8f49-5bce54818afb'}, mode: 'update'} );
      }

            var xhr = new XMLHttpRequest();
      xhr.open( 'POST', 'https://www.dude.fi/wp-json/air-cookie/v1/consent', true );
      xhr.setRequestHeader( 'X-WP-Nonce', '7b009282eb');
      xhr.send( JSON.stringify( {
        visitorid: cc.get( 'data' ).visitorid,
        revision: cc.get( 'revision' ),
        level: cc.get( 'level' ),
      } ) );
    }

        var elements = document.querySelectorAll('[data-aircookie-accept]');
    for (var i = 0; i < elements.length; i++) {
      elements[i].addEventListener('click', function(e) {
        e.preventDefault();

        var accepted = e.target.getAttribute('data-aircookie-accept');

        if ( 'all' === accepted ) {
          cc.accept('all');
          cc.hide();
        } else {
                    var accepted_prev = cc.get('level');
          if ( 'undefined' === typeof accepted_prev ) {
            accepted_prev = [ 'necessary' ];
            cc.hide();
          }

          accepted_prev.push( accepted );
          cc.accept( accepted_prev );
        }

                var elements = document.querySelectorAll('[data-aircookie-remove-on="accept-' + accepted + '"]');
        for (var i = 0; i < elements.length; i++) {
          elements[i].remove();
        }
      });
    }
    }

  // When document has been completely loaded
  document.addEventListener('DOMContentLoaded', dudeSwupAircookieInit);

  // Do things when content is replaced via Swup
  document.addEventListener('swup:contentReplaced', dudeSwupAircookieInit);
</script>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions