如何只删除我的域设置的cookie的一部分(其他几个设置用于其他应用程序)?

时间:2011-06-10 20:57:17

标签: javascript cookies

document.cookie给了我类似的东西:

  

“cookie_name_1 = 623222.88839338.818181.383; SnapABugHistory = 4#; optimizelyEndUserID = aaa1111111; my_cookie_name =%5data%7Bfrom%3Arails”

我只想删除my_cookie_name=%5data%7Bfrom%3Arails并保留其余内容。

从javascript执行此操作的最佳方式是什么?

3 个答案:

答案 0 :(得分:1)

使用过去expires日期设置 - 最简单的可能是unix时期(仅new Date(0)):

document.cookie = 'my_cookie_name=; expires=' + new Date(0).toUTCString();

这只会影响字符串开头给出的名称的cookie。要影响其他3个cookie,您必须重复每个:

document.cookie = 'cookie_name_1=; expires=' + new Date(0).toUTCString();
document.cookie = 'SnapABugHistory=; expires=' + new Date(0).toUTCString();
//...

那是因为document.cookie的getter和setter确实不同。当您 获取 所有可用Cookie的连锁列表时,您一次只能 设置

有关详细信息,请参阅MDC docs

答案 1 :(得分:0)

http://plugins.jquery.com/project/Cookie

允许您按名称设置/获取cookie,使用它将my_cookie_name设置为0或“”

答案 2 :(得分:0)

看看Quirks Mode post about cookies。它将为您提供有关如何使用cookie的绝佳解释。

接近结尾(脚本部分),您可能会发现三个有用的功能,即createCookie(name,value,days)readCookie(name)eraseCookie(name),这些功能完全正确你想要什么。

当然,这是纯粹的javascript。如果您正在使用js框架(例如jQuery),那么您最好使用框架的内置函数