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执行此操作的最佳方式是什么?
答案 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),那么您最好使用框架的内置函数