2010-03-16 5 views
1

J'utilise le plugin jquery cookie. Tout fonctionne bien, sauf le fait que je ne sais pas comment définir une date d'expiration pour le cookie?jquery cookie - hoursToLive

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

la documentation jquery cookie dit:

hoursToLive (pour DECONSEILLE ExpiresAT)

  • NUMÉRO
  • Pour combien d'heures doit le cookie est valide? (En passant 0 signifie pour supprimer le cookie à la fin de la session du navigateur -.. C'est par défaut Les valeurs négatives supprimer le cookie, mais vous devez utiliser la méthode à la place del())

C'est exactement ce que je aimerais avoir. Le cookie devrait être disponible aussi longtemps que je navigue sur le site. Dès que je ferme la fenêtre ou browsertab, le cookie devrait être supprimé.

Comment est-ce que je peux mettre en application ce thingToLive thingy à ma ligne mentionnée ci-dessus?

Merci

+0

Semble la documentation est d'un plug-in différent de celui que vous utilisez réellement. Il y a un plugin $ .cookie et un plugin $ .cookies. Votre exemple utilise $ .cookie mais la documentation provient de la documentation $ .cookies. Voir ces liens https://github.com/carhartl/jquery-cookie & http://code.google.com/p/cookies/wiki/Documentation – Blowsie

Répondre

0

À ma connaissance, vous n'avez pas besoin de faire quoi que ce soit du tout. hoursToLive est obsolète mais n'a pas encore été supprimé. Comme 0 est la valeur par défaut pour hoursToLive de toute façon le cookie sera supprimé lorsque le navigateur est fermé (! Pas lorsque seul l'onglet est fermé mais le navigateur reste ouvert).

Si vous avez vraiment besoin de supprimer le cookie lorsque l'onglet est fermé, vous pouvez essayer de fixer un gestionnaire d'événements à l'événement de déchargement de la fenêtre jQuery(window).unload(...) et à l'intérieur de ce gestionnaire appeler le del('...'), mais cela pourrait ne pas toujours


S'il suffit que le cookie expire après 1 heure, vous pouvez tout simplement passer l'option expiresAt lors de la configuration du cookie

expiresAt: new Date(new Date().getTime()+3600000) //now + 1h (60*60*1000) 
+0

Le problème est: Je veux charger un certain overlay-div qui ment en haut de mon site web. Il ne devrait apparaître que lorsque le site est chargé la première fois. Cette div est fermable (elle se cache juste si je clique sur le bouton de fermeture). Si je ne mets pas de cookie et que je clique par exemple sur un lien interne sur mon site web, le div overlay est affiché à nouveau. Donc, je veux mettre un cookie qui vit jusqu'à ce que je ferme la fenêtre ou l'onglet. Ce serait également acceptable si le témoin vit une heure ou deux. Mais je n'ai aucune idée de comment mettre en œuvre cela! – matt

+0

Vérification de la réponse étendue pour la solution 1h – jitter

+0

expiresAt n'est pas une option valide pour le plugin jquery cookie, si vous l'utilisez, elle tombera et créera un cookie qui ne dure que pour la session du navigateur. vous devriez utiliser cette date expires: pas expiresAt: voir ici pour plus d'informations https://github.com/carhartl/jquery-cookie/blob/master/README.rdoc – Blowsie

Questions connexes