一个cookie的多个过期选项? (JavaScript的)

时间:2011-01-24 17:02:13

标签: javascript cookies

我想知道是否有办法为一个cookie设置多个过期选项。例如,我希望cookie在用户关闭浏览器时过期,并在30分钟内过期。

这可能吗?

  

YAHOO.util.Cookie.setSubs(“cookiename”,cookieData,{expires:0,expires:time() - 1800,path:“/”,domain:“cbc.ca”});

2 个答案:

答案 0 :(得分:3)

来自RFC:

  

如果某个属性在a中出现多次      cookie,行为未定义。

没有办法设置一个像这样过期的cookie;至少,没有跨浏览器的方式来做到这一点。 (另外,据我所知,相应的属性是“Max-Age”,而不是“expires”;也许这个名字是YUI api的一部分。)

在一段时间之后使会话过期通常是保护服务器端代码本身和显式安全的事情。 (换句话说,如果会话cookie的时间戳指示年龄过大,则会明确拒绝会话cookie。)

答案 1 :(得分:2)

您可以让cookie设置onload事件,但不能有两个到期时间。您可以获取页面卸载的时间,然后将cookie设置为+30分钟。但是你不能在浏览器关闭时设置cookie,你需要一个插件才能这样做,但是当页面关闭时你可以。