2017-02-11 3 views
0

Ich habe eine ‚Cookies akzeptieren‘ Leiste am Fuß meiner Web-Seite mit dem folgenden HTML:jQuery Cookie-Glitch

<div class="cookies-banner-bloc"> 
      <div class="cookies-banner-container"> 
       <p>We use cookies on this website.</p> 
       <a class="cookies-close-button no-border">Close this Message</a> 
      </div> 
     </div> 

ich die folgende jQuery verwenden Cookies zu verwenden, zu speichern, wenn der Benutzer Schließen geklickt hat‘ ', jedoch scheint der Cookie nur auf der einen Seite und nicht auf der gesamten Seite gespeichert zu sein. Ich habe es in meinem header.php Skript so sollte es alle meine Vorlagen auswirken.

Warum funktioniert das nur auf einer Seite?

Javascript:

<script> 
     function getCookie(cname) { 
      var name = cname + "="; 
      var ca = document.cookie.split(';'); 
      for(var i = 0; i <ca.length; i++) { 
       var c = ca[i]; 
       while (c.charAt(0)==' ') { 
        c = c.substring(1); 
       } 
       if (c.indexOf(name) == 0) { 
        return c.substring(name.length,c.length); 
       } 
      } 
      return ""; 
     } 

     jQuery(document).ready(function($){ 

      if(getCookie("userclosedalert")=="true"){ 
        $(".cookies-banner-bloc").addClass('hide'); 
        removeClass = false; 
      } else { 
        $(".cookies-banner-bloc").addClass('show'); 
        removeClass = false; 
      } 
      $(".cookies-close-button").click(function() { 
       document.cookie = "userclosedalert=true"; 

      }); 

     }); 

     </script> 

CSS:

.cookies-banner-bloc { 
    width: 100%; 
    position: fixed; 
    bottom: 0; 
    background-color: black; 
    padding: 25px 0; 
    opacity: 1; 
    display:none; 
} 

.cookies-banner-bloc.show { 
    display:block; 
} 

.cookies-banner-bloc.show.hide,.hide { 
    display:none; 
} 

Antwort

1

Ich sehe nicht, auch wenn Ihr Cookie abläuft. Bei der nächsten Sitzung wird der Benutzer diese Nachricht erneut sehen. Sie können so etwas verwenden

var x = 12 * 20; //or whatever offset 
var CurrentDate = new Date(); 
CurrentDate.setMonth(CurrentDate.getMonth() + x); 
document.cookie = "userclosedalert=true; expires=" + CurrentDate + ";path=/"; 
+0

Vielen Dank, @bugaloo :) – michaelmcgurk