[JS] - ciasteczka

0

Witam,

Mam problem z ciasteczkami w JS. Chcę by skrypt pokazywał diva i jednocześnie chowając inne divy jeżeli dane ciasteczko nie istnieje. <ort>na razie </ort>napisałem taki skrypt:

<script src="http://code.jquery.com/jquery-1.4.2.js" type="text/javascript"></script>
<script type="text/javascript">

$(document).ready(function () {
   $('div.lat18').hide();
   
   var wzor = /document.cookie/;

   if(!(wzor.test("lat18=tak;"))) {
      $('div.lat18').show();
      $('a.katy').hide();
      $('table.new_infoBoxContents').hide();
      $('td.smallText').hide();
   }
  
   $('button.tak').click(function(){
      $('div.lat18').hide();
      $('a.katy').show();
      $('table.new_infoBoxContents').show();
      $('td.smallText').show();
      document.cookie="lat18=tak; max-age=1000";
   });
  
   $('button.nie').click(function(){
      $('div.lat18').hide();
      document.location="http://wp.pl";
   });
});
</script>

Sęk jest w tym, że div się ładnie pokazuje i chowa, ale po odświeżeniu strony nadal się pokazuje mimo, iż ciasteczko jest już ustawione, a ma się nie pokazywać. Proszę o pomoc.

P.S. Zaznaczam, że nie jestem jeszcze jakimś profesjonalistą w tej dziedzinie więc proszę o wyrozumiałość :)

0

Błąd tkwi w wyrażeniu regularnym. Jeśli podajesz je literalnie, czyli /.../, to traktuje wartości między ukośnikami dosłownie. Nic tam nie jest parsowane. Twoje wyrażenie dopasowałoby tekst: document.cookie, documentacookie, document%cookie, itd., bo kropka zastępuje jeden znak :)

To pierwsza rzecz, a druga.. Wartości w document.cookie nie stanowią wzoru. Wzorem będzie np. Twoje "lat18=tak;". Generalnie powinieneś zrobić np. tak:

if (document.cookie.match(/lat18=tak;/)) ...
0

Niestety nie działa ta metoda... ;/ Tym razem skrypt zachowuje się tak jakby w ogóle nie odczytywał ciasteczek i od razu chowa tego div'a mimo, iż nie ma zapisanego ciasteczka "lat18=tak"...

0

Dzięki bardzo za ten plugin :) teraz działa wszystko jak należy :) Gdyby ktoś na przyszłość miał podobny problem umieszczam kod skryptu:

<script src="http://code.jquery.com/jquery-1.4.2.js" type="text/javascript"></script>
<script src="http://plugins.jquery.com/files/jquery.cookie.js.txt" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
   $('div.lat18').hide();

   if(!($.cookie("lat18"))) {
      $('div.lat18').show();
      $('a.katy').hide();
      $('table.new_infoBoxContents').hide();
      $('td.smallText').hide();
   }
  
   $('button.tak').click(function(){
      $('div.lat18').hide();
      $('a.katy').show();
      $('table.new_infoBoxContents').show();
      $('td.smallText').show();
      $.cookie("lat18", "tak", {expires: 1});
   });
  
   $('button.nie').click(function(){
      $('div.lat18').hide();
      document.location="http://wp.pl";
   });
});
</script>

1 użytkowników online, w tym zalogowanych: 0, gości: 1