jQuery cookie到期值

我在这里已经阅读了很多jQuery cookie问题,并且知道有一个jQuery cookie插件( jQuery cookie )。 没有做太多调查,问题是:有没有办法确定cookie的到期日期?

来自jquery.cookie doc:

/** * Get the value of a cookie with the given name. * * @example $.cookie('the_cookie'); * @desc Get the value of a cookie. * * @param String name The name of the cookie. * @return The value of the cookie. * @type String * * @name $.cookie * @cat Plugins/Cookie * @author Klaus Hartl/klaus.hartl@stilbuero.de */ 

这个插件似乎不能做到吗?

我想这样做的原因是我的cookie在5分钟不活动后过期,并且我想通知用户他们的会话即将从Javascript到期。

除非发生了某些变化,否则你无法 cookie中获取这个值,你可以设置它,但就是这样,当它到期时它就不会再出现在cookie集合中……但是你看不到它例如,它在5分钟后到期。

对于会话到期时的最佳选择是使用具有正确延迟的setTimeout() ,例如,如果它是5分钟,您可能想要在4分30秒时发出警报,如下所示:

 setTimeout(function() { alert("Your session will expire in 30 seconds!"); }, 270000); //4.5 * 60 * 1000 
 $.cookie("example", "foo", { expires: 7 }); 

将在7天后到期

没有允许您检查cookie的到期日期的Javascript API

由于无法从JavaScript API访问,因此唯一的方法是将其与元数据并行存储在内容中。

  var textContent = "xxxx" var expireDays = 10; var now = new Date().getTime(); var expireDate = now + (1000*60*60*24*expireDays); $.cookie("myCookie", '{"data": "'+ textContent +'", "expires": '+ expireDate +'}', { expires: expireDays }); 

然后读回来(显然,如果cookie已经过期,则添加安全措施):

 var now = new Date().getTime(); var cookie = $.parseJSON($.cookie("myCookie")); var timeleft = cookie.expires - now; var cookieData = cookie.data; 

请注意,如果客户端时钟在此期间发生变化(例如,由于DST),这将不完全可靠。