原文:http://www.cnblogs.com/gossip/archive/2011/12/06/2278282.html
项目中使用sdmenu.js时,需要在登录时清除Cookie,而sdmenu默认是会保存Cookie的
下面是sdmenu.js保存Cookie的方法
document.cookie = "sdmenu_" + encodeURIComponent(this.menu.id) + "=" + states.join("") + "; expires=" + d.toGMTString() + "; path=/";
下面是我到网上找的清除Cookie的方法,始终都无法删除Cookie
1、传递Cookie名称
function deleteCookie(name){
var date=new Date();
date.setTime(date.getTime()-10000);
document.cookie=name+"=v; expire="+date.toGMTString()+"; path=/";
2、循环删除所有Cookie
// js 遍历所有Cookie
function foreach()
{
var strCookie=document.cookie;
var arrCookie=strCookie.split("; "); // 将多cookie切割为多个名/值对
for(var i=0;i <arrCookie.length;i++)
{ // 遍历cookie数组,处理每个cookie对
var arr=arrCookie[i].split("=");
if(arr.length>0)
DelCookie(arr[0]);
}
}
function GetCooki(offset)
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return decodeURIComponent(document.cookie.substring(offset, endstr));
}
function DelCookie(name)
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}
function GetCookie(name)
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return GetCooki (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
后来发现这个网址,介绍了无法删除Cookie的原因
http://php.js.cn/blog/delete-cookie/
今天遇到一个cookie的问题: 名叫username的,域为www.umiwi.com的cookie无法删除,导致用户登录以后无法退出。搞了半天终于发现问题所在:原来是我关于cookie的基础知识没搞清楚 。。。。
Cookie不仅仅有名字和值两个属性,还有域(domain),过期时间(expires),路径(path)等属性。 其中,不同的域、不同的路径下可以存在同样名字的cookie。 比如这个页面: 用鼠标戳我
一般我们删除cookie的方法是用一个同样名字、过期时间为过去某个时候的Cookie覆盖之。 这时就一定要搞清楚你要删除的cookie的域和路径,Cookie域和路径要一样才能被覆盖。 否则产生的效果就是那个想要被删除的Cookie具有神奇的生命力,无法被清除~~~
另外,我发现在设置Cookie的时候,如果没有指定域名,那么设置的这个cookie的域默认为当前域,比如www.umiwi.com。 如果设置的时候指定了某个域,那么浏览器存的时候会自动在前面加.。比如PHP代码: setcookie('test','a',0,'www.umiwi.com'); 那么 浏览器里面存的Cookie的域为.www.umiwi.com。 所以,最好的方式是设置Cookie的时候怎么写的,删除的时候就怎么写。 要不就会出现我遇到的情况: 明明浏览器里看有 username=longbill,域为www.umiwi.com的Cookie,但是在php里写 setcookie('username','',time()-1000,'www.umiwi.com','/'); 无法删除那个Cookie。 原因就是我删Cookie的操作其实上是发了一个新的名叫username、值为空、过期时间为过去1000秒、域为.www.umiwi.com、路径为/的Cookie。这个Cookie发到浏览器马上就过期了,什么也看不到。而我要删除的在http://www.umiwi.com/上的cookie还活的好好的。。。
原来是删除Cookie的代码中没有加 路径(path)
原:
document.cookie = "sdmenu_" + encodeURIComponent(this.menu.id) + "=" + states.join("") + "; expires=" + d.toGMTString() + "; path=/";
新:
var date=new Date();
date.setTime(date.getTime()-10000);
document.cookie=name+"=v; expire="+date.toGMTString()+"; path=/";
除了路径(path),可能还有域等其它情况,保险的方式就是 设置Cookie时是什么样式,删除时就应该是什么样式,加上expire属性就行了
分享到:
相关推荐
FlashCookie 不被浏览器清除的Cookie 不被浏览器清空的Cookie
jquery cookie.js 官方下载,一款优秀的 jquery 插件,提供了非常轻量级、简单、实用的操作 cookie 的方法,包括读写、删除等操作,jquery cookie 路径,jquery cookie 时间,jquery cookie 有效期,jquery cookie ...
jquery 设置cookie、删除cookie、获取cookie
利用jquery.cookie.js存取cookie,设置cookie,删除cookie,更新
js的cookie:包括得到cookie 设置cookie和删除cookie的代码
这个文件包含了javascript对浏览器cookie文件的设置、读、写、删除四个函数,非常好用。
jquery.cookie.js 对cookie的操作 $.cookie('the_cookie'); //读取Cookie值 $.cookie('the_cookie', 'the_value'); //设置cookie的值 $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery...
详解操作cookie的原生方法cookieStore ... 新方式 cookieStore 2.1 基本方法2.2 设置 cookie2.3 获取 cookie2.4 获取所有的 cookie2.5 删除 cookie2.6 监听 cookie 的变化 2.1 基本方法 2.2 设置 cookie 2
代码如下: function ClearCookie() { var expires = new Date(); expires.setTime(expires.getTime() – 1000); //当前时间减去一秒,相当于立即过期(可以增减) [removed] = “appCode=’222”’;path=/;expires=” +...
jQuery cookie是个很好的cookie插件,大概的使用方法如下 example $.cookie(’name’, ‘value’); 设置cookie的值,把name变量的值设为value example $.cookie(’name’, ‘value’, {expires: 7, path: ‘/’, ...
本文实例讲述了javascript实现设置、获取和删除Cookie的方法。分享给大家供大家参考。具体实现方法如下: /* *设置Cookie * * name:cookie所对应的键 * value:cookie所对应的值 * expires:cookie所对应的有效...
js来操作cookie,包括添加cookie,删除cookie等等。
JS cookie 操作工具类,对cookie的设置 读取 删除 ,有效期的设置等
cookie的一些操作函数的封装,如:添加、删除、获取cookie中key对应的Value值、判断cookie是否存在
常用cookie操作方法 setCookie 新增/修改 readCookie 读取 delCookie 删除
主要介绍了js实现操作cookie的常见方法,结合实例形式分析了js操作cookie创建、读取、删除相关实现技巧与注意事项,需要的朋友可以参考下
用JS设置、读取、删除cookie。经过测验和优化的代码,可以根据个人需求稍作改动,即可使用。好东西,和大家一起分享。
s操作cookie 读取 存取 删除 调用
asp.net通过js实现Cookie创建以及清除Cookie数组的代码.docx