我已经编写了在JavaScript中保存cookies的代码。现在,我需要清除cookie,而不管我分配的值是什么。
是否有任何脚本模块可以删除Javascript生成的所有cookies
我的示例代码:
document.cookie = 'ppkcookie2=another test; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/'
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
要不然我怎么清理所有的cookie呢?
当我在when服务器上测试代码时,会出现问题吗?
发布于 2010-03-11 08:41:26
删除浏览器cookie没有100%的解决方案。
问题是cookies不仅通过它们的关键字“名称”唯一地标识,而且还通过它们的“域”和“路径”来唯一标识。
在不知道cookie的“域”和“路径”的情况下,您无法可靠地删除它。这些信息不能通过JavaScript的document.cookie
获得。它也不能通过HTTP Cookie头获得!
但是,如果您知道cookie的名称、路径和域,则可以通过在过去设置一个带有过期日期的空cookie来清除它,例如:
function clearCookie(name, domain, path){
var domain = domain || document.domain;
var path = path || "/";
document.cookie = name + "=; expires=" + +new Date + "; domain=" + domain + "; path=" + path;
};
发布于 2012-06-19 14:39:34
这是我们在应用程序中使用的一个函数,它工作得很好。
删除cookie:无参数方法
function clearListCookies()
{
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
{
var spcook = cookies[i].split("=");
deleteCookie(spcook[0]);
}
function deleteCookie(cookiename)
{
var d = new Date();
d.setDate(d.getDate() - 1);
var expires = ";expires="+d;
var name=cookiename;
//alert(name);
var value="";
document.cookie = name + "=" + value + expires + "; path=/acc/html";
}
window.location = ""; // TO REFRESH THE PAGE
}
编辑:这将通过将cookie设置为昨天的日期来删除cookie。
发布于 2013-08-13 22:04:29
为什么使用新日期而不是静态UTC字符串?
function clearListCookies(){
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++){
var spcook = cookies[i].split("=");
document.cookie = spcook[0] + "=;expires=Thu, 21 Sep 1979 00:00:01 UTC;";
}
}
https://stackoverflow.com/questions/595228
复制相似问题