2015-03-31 116 views
0

我正在使用Cookie,应在用户关闭页面后将其删除,但它们不是。这是我如何设置与JS会话关闭后Cookie未被删除

document.cookie="status=false"; 

饼干我可以看到饼干控制台后,我关闭浏览器,然后再次打开它,去我的网页上仍然有使用网站status=false任何想法,为什么?

+0

如果没有答案的为你工作:该Cookie _should_被删除,从您提供的信息。似乎还有其他问题出错了。请创建一个新的空白HTML页面,并尝试用最少的(不必要的)代码来重现问题。然后,将其添加到您的问题中,以便我们可以使用它并查找错误。 – blex 2015-03-31 18:52:11

+0

没有,依然不起作用。我只用一个cookie创建了“新鲜”页面,当我在开发工具中创建它时,它说的是Duration:Sesion,并且在关闭标签页并在新页面中打开页面后,仍然存在该cookie。这是代码http://pastie.org/10065425 – opengl 2015-03-31 19:09:19

+0

这很奇怪,我复制粘贴你的代码,把它放在服务器上,用Firefox访问它,成功设置cookie,关闭浏览器,重新打开它,去到页面,找到了饼干:走了。然后我对Chrome也做了同样的事情。同样的结果。你使用的是什么浏览器? – blex 2015-03-31 19:19:18

回答

0

document.cookie = ...sets individual cookie values,它并没有“全曲奇”设置为您传递的字符串,所以设置“状态=假”简单地结合或更新了“状态”值,不管任何其他人在饼干:

document.cookie = "cow=bell"; 
document.cookie = "cat=lol"; 
// cookie is now "cow=bell&cat=lol", not just "cat=lol" 

如果您想要删除整个cookie,请将其过期时间设置为“过去”,浏览器将为您进行清理。

(正如评论指出的那样,如果你从来没有设置Cookie的过期时间戳,it'l当网页会话结束,如您关闭该标签/浏览器到期)

0

实际上,我是这样做的今天。如果你用它们的var docCookies代码创建一个js然后使用像docCookies.setItem() docCookies.setItem() docCookies.getItem()docCookies.removeItem()这样的函数很好地工作,那么一个很好的参考是Mozilla cookie documents

1

我这个“绝招”解决了这个问题,我不知道为什么我不能让饼干工作

window.onbeforeunload = function() { 
    document.cookie="status=false"; 
}; 
+0

这应该被标记为正确答案 – 2017-10-03 03:00:04