XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Javascript & Ajax (http://xhtmlforum.de/forumdisplay.php?f=83)
-   -   jquery cookie plugin, expiration time? (http://xhtmlforum.de/showthread.php?t=60586)

sepp88 15.03.2010 20:26

jquery cookie plugin, expiration time?
 
Hallo Leute,
ich möchte auf einer Webseite eine Art Layer (einfach ein Div 800x600px) über den restlichen Inhalt legen. Dieses Fenster soll einen Closebutton haben, und wenn man diesen klickt, soll dieser Layer ausgeblendet werden und WICHTIG: für den restlichen Aufenthalt auf der Seite auch unisichtbar bleiben. Erst wenn ich die Session verlasse (also den Tab oder das Fenster schließe) und die Seite erneut aufrufe soll das Div wieder da sein. Oder zumindest nach einer bestimmten Zeit, sagen wir z.b. 1h. Das wäre auch schon okay.

Es funktioniert alles schon, bis auf dieses genannte Feature. Kann ich das mit dem jquery Cookie Plugin lösen?

PHP-Code:

if($.cookie('opt_visible') != 'true'){ //wenn kein Cookie existiert
     
$('#layer').show();
    $(
'#coreContent, #footer, #navicaller').hide();
    }else{ 
        $(
'#layer').hide();
    $(
'#coreContent, #footer, #navicaller').show();
    }
    
//wenn der Closebutton geklickt wird, soll ein Cookie gespeichert werden. 
//Dieses Cookie sollte nach dem Schließen der Session gelöscht werden. //Oder nach z.b. 1h
    
$('#layer #closebox').click(function() {
        $(
'#layer').hide('fast');
        $(
'#coreContent, #footer, #navicaller').show();
        $.
cookie('opt_visible''true');
    }); 

Könnt ihr mir da bitte helfen? Danke vielmals!

sepp88 16.03.2010 11:15

in der Plugin Dokumentation steht folgendes:

Zitat:

# hoursToLive (DEPRECATED for expiresAt)

* NUMBER
* For how many hours should the cookie be valid? (Passing 0 means to delete the cookie at the end of the browser session--this is default. Negative values will delete the cookie, but you should use the del() method instead.)
Das wäre genau das was ich suche! Allerdings weiß ich leider nicht, wie und wo ich das hoursToLive definieren muss!

PHP-Code:

$.cookie('opt_visible''true'); 

Wo und wie muss ich das verarbeiten?

uspri 16.03.2010 17:20

Hast Du mal nen Link zur Doku? Ich habe keine Lust, selber zu suchen.

sepp88 16.03.2010 17:31

Zitat:

Zitat von uspri (Beitrag 461717)
Hast Du mal nen Link zur Doku? Ich habe keine Lust, selber zu suchen.

Documentation - cookies - How to use jquery.cookies.js - Project Hosting on Google Code
Ich habe wirklich selbst gesucht und probiert. Aber ich komme nicht auf die Lösung.

Der jquery code wird im header eines Blogs geladen und soll eben WENN KEIN COOKIE existiert, das besagte Overlay einblenden. In dem Fall soll, dann aber ein Cookie gespeichert werden, dass entweder für die restliche Session oder z.b. für eine Stunde existiert. Denn sonst wird mir ja bei jedem Klick auf einen Menüpunkt auf meiner Webseite immer wieder dieses Overlay-Div angezeigt und geladen. Es soll aber nur beim ersten Seitenaufruf erscheinen.

uspri 16.03.2010 18:18

Schau mal, ob das damit geht (nur eine Idee auf die Schnelle):
Code:

  var newOptions = {
    domain: '*.mydomain.com',
    path: '/somedir',
    expiresAt: new Date( 2011, 1, 1 ),
    secure: true
  }
  $.cookies.set(newOptions)

Values musste noch anpassen.

sepp88 16.03.2010 19:31

ich habs!

PHP-Code:

$.cookie('opt_visible''true', { path'/'expiresAt: new Date(new Date().getTime()+3600000) }); //für 1h 



Alle Zeitangaben in WEZ +2. Es ist jetzt 09:08 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2019, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2019