elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [JS] Script Ley Europea Cookies en Blogger
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [JS] Script Ley Europea Cookies en Blogger  (Leído 2,267 veces)
el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 21.637


La libertad no se suplica, se conquista


Ver Perfil WWW
[JS] Script Ley Europea Cookies en Blogger
« en: 5 Agosto 2015, 10:50 am »

Deshabilitar Cookies en Blogger

Editar Plantilla HTML:

Después del Title (o sea que esté en el head)

Código
  1. <SCRIPT>
  2. cookieChoices = {};
  3. </SCRIPT>


Añadir script de Google:

http://www.cookiechoices.org/cookiechoices.zip

Dentro del zip hay el fichero cookiechoices.js

Añadir después de la siguiente línea:

Código
  1. document.getElementById(dismissLinkId).onclick = _dismissLinkClick;

esto para que al hacer scroll desaparezca el aviso (consideramos que si está navegando acepta nuestra política de Cookies, navegar = scroll).

Código
  1. document.onscroll = _dismissLinkClick;

La cookie caduca por defecto en 1 año:

Podemos poner + 3 años:

Código
  1. expiryDate.setFullYear(expiryDate.getFullYear() + 3);

Y añadir el "path=/" para que no aparezca el aviso en todas las páginas del dominio:

Código
  1. document.cookie = cookieName + '=y; path=/; expires=' + expiryDate.toGMTString();

O otra opción es colocar la cookie en culaquier subdominio de .elhacker.net, es decir *.elhacker.net , de manera que si el nombre de la cookie (displayCookieConsent) y el valor es "y" y la acepta en un subdominio sirve para el resto de los dominios.

Código
  1. document.cookie=cookieName+'=y; expires='+expiryDate.toGMTString()+'; domain='+getDomainName(window.location.host)+'; path=/';

Debemos añadir la función  getDomainName en el fichero cookiechoices.js

Código
  1. /*
  2. function getDomainName(hostName){if(hostName.lastIndexOf(".")==hostName.indexOf(".")){return hostName}return hostName.substring(hostName.indexOf(".")+1)}
  3. */
  4.  
  5. function getDomainName(hostName)
  6. {return hostName.substring(hostName.lastIndexOf(".",hostName.lastIndexOf(".")-1)+1);}
  7.  

Y cambiamos el nombre de la variable cookieChoices por cookieOpciones

Ahora ponemos el código en la plantilla de nuestro sitio web dentro del body (no en el head)

Código
  1. <script src="//www.elhacker.net/inclusiones/plantillas/006/cookiechoices.js"></script>
  2.  document.addEventListener('DOMContentLoaded', function(event) {
  3.    cookieOpciones.showCookieConsentBar('Este sitio web utiliza cookies propias y de terceros. Si continúas navegando, consideramos que aceptas su uso.',
  4.                                       'Vale', 'Más info', 'http://www.elhacker.net/legal.html');
  5.  });

Podemos cambiar el texto del aviso de Cookies, y el texto de más información y el del ok, o Entendido o Vale, De Acuerdo, etc.

El js de blogger por defecto es:

Código
  1. <!-- 'Tú eres el responsable de informar a los visitantes de tu blog de las cookies que utilizas en él. Para más información, ve a http://www.blogger.com/go/cookiechoices.' -->
  2. <script src="/js/cookiechoices.js" defer></script>
  3. <script>
  4.  document.addEventListener('DOMContentLoaded', function(event) {
  5.    window.cookieChoices && cookieChoices.showCookieConsentBar && cookieChoices.showCookieConsentBar(
  6.        (window.cookieOptions && cookieOptions.msg) || 'Este sitio emplea cookies de Google para prestar sus servicios, para personalizar anuncios y para analizar el tráfico. Google recibe información sobre tu uso de este sitio web. Si utilizas este sitio web, se sobreentiende que aceptas el uso de cookies.',
  7.        (window.cookieOptions && cookieOptions.close) || 'Entendido',
  8.        (window.cookieOptions && cookieOptions.learn) || 'Más información',
  9.        (window.cookieOptions && cookieOptions.link) || 'https://www.blogger.com/go/blogspot-cookies');
  10.  });
  11. </script>
  12.  

Para cambiar el texto:

Código
  1. <script>
  2. cookieOptions = {msg: "Este sitio web utiliza cookies propias y de terceros. Si continúas navegando, consideramos que aceptas su uso", close: "Vale", learn: "Más info", link:"http://www.elhacker.net/legal.html"};
  3. </script>


Para modificar  la apariencia: style:

Código
  1. <b:skin><![CDATA[
  2.  
  3. #cookieChoiceInfo {
  4. position:absolute !important;
  5. width:40% !important;
  6. background-color:#eee !important;
  7. left:38% !important;
  8. color: #333 !important;
  9. font-size: 10px !important;
  10. font-weight:normal !important;
  11. padding:4px !important;
  12. margin:0; !important;
  13. z-index:1000 !important;
  14. line-height:1% !important;
  15. }      
  16.  

Para cumplir la ley debemos esperar a que el usuario acepte las cookies antes de cargarlas:

Código
  1. <script>
  2. function carga_cookies(){
  3.  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  4.  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  5.  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  6.  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  7.  
  8.  ga('create', 'UA-xxxxxxx', 'auto');
  9.  ga('send', 'pageview');
  10. }
  11. </script>

Y una vez acepte las cookies llamamos a la función:

Código
  1. carga_cookies();


Google Analytics sin recoger datos de país (cookie técnica)

https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#anonymizeIp

https://github.com/ItalyCookieChoices/italy-cookie-choices/wiki/Analytics-and-Cookie-Law

Código
  1. <script>
  2.  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  3.  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  4.  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  5.  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  6.  
  7.  ga('create', 'UA-XXXXXXX-X',  {'siteSpeedSampleRate': 100, 'anonymizeIp': true, 'storage': 'none', 'clientId': window.localStorage.getItem('ga_clientId')});
  8.  ga(function(tracker) {
  9.    window.localStorage.setItem('ga_clientId', tracker.get('clientId'));
  10.  });
  11.  ga('send', 'pageview');
  12.  
  13. </script>

Otra opción más completa es usar jquery:


Código
  1. <script src="js/jquery-1.11.0.min.js"></script>
  2. <script src="js/jquery.cookie.js"></script>
  3. <script src="js/jquery.cookiecuttr.js"></script>

En el cookiecuttr.js cambiar el texto, link info cookies,

Código
  1. cookieMessage:
  2. cookiePolicyLink:

Y cargar en el <body>

Código
  1. <script>
  2. $(document).ready(function () {
  3. $.cookieCuttr();
  4. $( window ).scroll(function() {
  5. if (jQuery.cookie('cc_cookie_accept') == undefined) {
  6.  $( ".cc-cookie-accept" ).click();
  7. }
  8. });
  9. $( window ).click(function() {
  10. if (jQuery.cookie('cc_cookie_accept') == undefined) {
  11.  $( ".cc-cookie-accept" ).click();
  12. }
  13. });
  14. });
  15. </script>

Otra opción interesante es un script que cumple con la ley con Google Adsense y Google Analytics:

https://github.com/ecoal95/CookieTool/blob/master/src/cookietool.js

http://emiliocobos.net/script-ley-de-cookies/
http://emiliocobos.net/ley-de-cookies-y-adsense/


« Última modificación: 7 Agosto 2015, 14:07 pm por #!drvy » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines