Normativa cookie: modifica cookie choice

Jizzy

Nuovo Utente
4 Lug 2008
16
0
1
Ciao a tutti.
Uno degli script messo a disposizione da google in merito alla normativa sui cookie in https://www.cookiechoices.org/
è il seguente:

PHP:
/*
 Copyright 2014 Google Inc. All rights reserved.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 */

(function(window) {

  if (!!window.cookieChoices) {
    return window.cookieChoices;
  }

  var document = window.document;
  // IE8 does not support textContent, so we should fallback to innerText.
  var supportsTextContent = 'textContent' in document.body;

  var cookieChoices = (function() {

    var cookieName = 'displayCookieConsent';
    var cookieConsentId = 'cookieChoiceInfo';
    var dismissLinkId = 'cookieChoiceDismiss';

    function _createHeaderElement(cookieText, dismissText, linkText, linkHref) {
      var butterBarStyles = 'position:fixed;width:100%;background-color:#eee;' +
          'margin:0; left:0; top:0;padding:4px;z-index:1000;text-align:center;';

      var cookieConsentElement = document.createElement('div');
      cookieConsentElement.id = cookieConsentId;
      cookieConsentElement.style.cssText = butterBarStyles;
      cookieConsentElement.appendChild(_createConsentText(cookieText));

      if (!!linkText && !!linkHref) {
        cookieConsentElement.appendChild(_createInformationLink(linkText, linkHref));
      }
      cookieConsentElement.appendChild(_createDismissLink(dismissText));
      return cookieConsentElement;
    }

    function _createDialogElement(cookieText, dismissText, linkText, linkHref) {
      var glassStyle = 'position:fixed;width:100%;height:100%;z-index:999;' +
          'top:0;left:0;opacity:0.5;filter:alpha(opacity=50);' +
          'background-color:#ccc;';
      var dialogStyle = 'z-index:1000;position:fixed;left:50%;top:50%';
      var contentStyle = 'position:relative;left:-50%;margin-top:-25%;' +
          'background-color:#fff;padding:20px;box-shadow:4px 4px 25px #888;';

      var cookieConsentElement = document.createElement('div');
      cookieConsentElement.id = cookieConsentId;

      var glassPanel = document.createElement('div');
      glassPanel.style.cssText = glassStyle;

      var content = document.createElement('div');
      content.style.cssText = contentStyle;

      var dialog = document.createElement('div');
      dialog.style.cssText = dialogStyle;

      var dismissLink = _createDismissLink(dismissText);
      dismissLink.style.display = 'block';
      dismissLink.style.textAlign = 'right';
      dismissLink.style.marginTop = '8px';

      content.appendChild(_createConsentText(cookieText));
      if (!!linkText && !!linkHref) {
        content.appendChild(_createInformationLink(linkText, linkHref));
      }
      content.appendChild(dismissLink);
      dialog.appendChild(content);
      cookieConsentElement.appendChild(glassPanel);
      cookieConsentElement.appendChild(dialog);
      return cookieConsentElement;
    }

    function _setElementText(element, text) {
      if (supportsTextContent) {
        element.textContent = text;
      } else {
        element.innerText = text;
      }
    }

    function _createConsentText(cookieText) {
      var consentText = document.createElement('span');
      _setElementText(consentText, cookieText);
      return consentText;
    }

    function _createDismissLink(dismissText) {
      var dismissLink = document.createElement('a');
      _setElementText(dismissLink, dismissText);
      dismissLink.id = dismissLinkId;
      dismissLink.href = '#';
      dismissLink.style.marginLeft = '24px';
      return dismissLink;
    }

    function _createInformationLink(linkText, linkHref) {
      var infoLink = document.createElement('a');
      _setElementText(infoLink, linkText);
      infoLink.href = linkHref;
      infoLink.target = '_blank';
      infoLink.style.marginLeft = '8px';
      return infoLink;
    }

    function _dismissLinkClick() {
      _saveUserPreference();
      _removeCookieConsent();
      return false;
    }

    function _showCookieConsent(cookieText, dismissText, linkText, linkHref, isDialog) {
      if (_shouldDisplayConsent()) {
        _removeCookieConsent();
        var consentElement = (isDialog) ?
            _createDialogElement(cookieText, dismissText, linkText, linkHref) :
            _createHeaderElement(cookieText, dismissText, linkText, linkHref);
        var fragment = document.createDocumentFragment();
        fragment.appendChild(consentElement);
        document.body.appendChild(fragment.cloneNode(true));
        document.getElementById(dismissLinkId).onclick = _dismissLinkClick;
      }
    }

    function showCookieConsentBar(cookieText, dismissText, linkText, linkHref) {
      _showCookieConsent(cookieText, dismissText, linkText, linkHref, false);
    }

    function showCookieConsentDialog(cookieText, dismissText, linkText, linkHref) {
      _showCookieConsent(cookieText, dismissText, linkText, linkHref, true);
    }

    function _removeCookieConsent() {
      var cookieChoiceElement = document.getElementById(cookieConsentId);
      if (cookieChoiceElement != null) {
        cookieChoiceElement.parentNode.removeChild(cookieChoiceElement);
      }
    }

    function _saveUserPreference() {
      // Set the cookie expiry to one year after today.
      var expiryDate = new Date();
      expiryDate.setFullYear(expiryDate.getFullYear() + 1);
      document.cookie = cookieName + '=y; expires=' + expiryDate.toGMTString();
    }

    function _shouldDisplayConsent() {
      // Display the header only if the cookie has not been set.
      return !document.cookie.match(new RegExp(cookieName + '=([^;]+)'));
    }

    var exports = {};
    exports.showCookieConsentBar = showCookieConsentBar;
    exports.showCookieConsentDialog = showCookieConsentDialog;
    return exports;
  })();

  window.cookieChoices = cookieChoices;
  return cookieChoices;
})(this);

e viene inserito nella root del sito.
Poi appena dopo il tag "body" occorre inserire qualcosa del genere:

PHP:
<!-- You should make sure that the file cookiechoices.js is available
and accessible from the root directory of your site.  -->
<script src="/cookiechoices.js"></script>
<script>
  document.addEventListener('DOMContentLoaded', function(event) {
    cookieChoices.showCookieConsentDialog('Utilizziamo i cookies per il corretto funzionamento di questo sito web. I dati personali non verranno memorizzati, chiudendo il banner acconsenti all uso dei cookie di terze parti.',
        'Chiudi banner', 'Informativa sui Cookie', 'http://www.miodominio.it/informativa-cookie.html');
  });
</script>

Lo script funziona benissimo ma con alcuni cellulari la scritta "chiudi banner" appare in fondo ed è difficilmente cliccabile.
Ho tentato svariate volte ma non sono riuscito a far apparire la scritta "chiudi banner" con relativo link anche in alto al pop up.
C'è qualcuno che ha provato?
Forse deve essere modificato anche il .js?
Grazie per l'aiuto
 

Rey

Utente Attivo
11 Set 2012
73
0
6
Ciao Jizzy,
il problema più grosso è il blocco preventivo dei cookies, tu come l'hai risolto?
 

Jizzy

Nuovo Utente
4 Lug 2008
16
0
1
Ciao Jizzy,
il problema più grosso è il blocco preventivo dei cookies, tu come l'hai risolto?

Ancora non l'ho risolto. Il problema è più grosso di quanto sembra perchè se una home o una qualsiasi pagina contiene ad esempio adsense anche quella soluzione carica i cookies.
Rimango in attesa di soluzioni, speriamo che magari anche in questa discussione intervenga qualcuno con qualche soluzione.
Riguardo adsense ad esempio se si modifica il codice si rischia di essere bannati da adsense perchè Google non vuole che il codice venga manipolato ed il blocco preventivo rimane un problema.
Questa legge mi sembra una guerra contro Google.
Rimaniamo in attesa
 

Antonio_Cantaro

Nuovo Utente
4 Giu 2015
3
0
0
Riduci la grandezza (diminuisci il numero delle parole) del tuo avviso e anche da smart potrai accedere al bottone in basso "chiudi banner"
 
Discussioni simili
Autore Titolo Forum Risposte Data
Gabriele Visioli Normativa sui Cookie e bloccare le Pubblicità/Affiliazioni WordPress 0
glm2006ITALY Nuova normativa Cookie Law Leggi, Normative e Fisco 1
M Normativa sito di rubriche: blog o magazine o altro? Leggi, Normative e Fisco 0
C Collegamenti a siti esterni - Normativa - Leggi, Normative e Fisco 0
F Normativa cookies Leggi, Normative e Fisco 0
Web Designer Normativa a protezione del diritto d'autore Leggi, Normative e Fisco 10
S Info normativa mercatini forum... @commercio elettronico Leggi, Normative e Fisco 5
F Normativa Commercio Elettronico Leggi, Normative e Fisco 11
A Consenso cookie Leggi, Normative e Fisco 0
seranto Blocco preventivo e Registro dei Consensi per Cookie tecnici? Leggi, Normative e Fisco 2
A Creazione cookie e gestione accessi PHP 0
B Privacy Policy e Cookie Policy Leggi, Normative e Fisco 1
J cookie iubenda Javascript 0
Tommy03 Problema durata cookie PHP 5
Y [Javascript] z-index popup accettazione cookie Javascript 1
W GDPR, Privacy, Policy, Cookie, cosa occorre? Leggi, Normative e Fisco 2
Shyson [PHP] Cookie si cancella prima PHP 7
O cookie e blocco preventivo Leggi, Normative e Fisco 0
C Blogger, privacy e cookie policy Leggi, Normative e Fisco 4
C Privacy e cookie policy EPN e ilgiardinodeilibri Leggi, Normative e Fisco 2
usura18 [PHP] Perdita contenuto cookie al reload della pagina PHP 6
simgia [PHP] Problema cookie PHP 1
N Come realizzare Cookie e Privacy Policy con Iubenda Leggi, Normative e Fisco 5
M php set cookie PHP 0
M cookie policy obbligatoria? Leggi, Normative e Fisco 5
T [PHP]Creare cookie PHP 5
O [PHP] Cookie law e blocco preventivo PHP 21
filippino Iubenda e Youtube cookie Leggi, Normative e Fisco 1
P Session e cookie funzionano solo dopo passaggio valori tramite POST PHP 8
D Privacy e Cookie Policy per i clienti Offerte e Richieste di Lavoro e/o Collaborazione 0
A Chiarimento Cookie law Leggi, Normative e Fisco 8
M Esistenza cookie presente nella root PHP 0
D Info Privacy Policy e Cookie Law Leggi, Normative e Fisco 1
G cookie law Discussioni Varie 6
filomeni Cookie Law... HTML e CSS 2
M Eliminare un cookie PHP 1
filomeni Barra per cookie law (jquery+php) Snippet Javascript 4
H Cookie Law e Newsletter Email Marketing 1
A ID canale di googleapis.com è un cookie? HTML e CSS 1
M Webview e cookie Sviluppo app per Android 0
A Strumenti "ufficiali" per la verifica dei Cookie HTML e CSS 2
S problema cookie con jsp HTML e CSS 0
M Cookie.. Cosa sto sbagliando? PHP 2
felino Cookie: capire da chi sono segnalati e se occorre generarli HTML e CSS 2
Antonio_Cantaro Cookie rendirizamento per evitare la loro scrittura Javascript 1
N Cookie law Discussioni Varie 0
felino [Wordpress] Plugin per la legge Europea sui Cookie WordPress 18
felino [Joomla] Plugin per la legge Europea sui Cookie Joomla 0
felino [Prestashop] Plugin per la legge Europea sui Cookie CMS (Content Management System) 3
Gabriele Visioli Legge sui Cookie e Forum phpBB phpBB 0

Discussioni simili