js 清除cookies为什么不好用?

schinar 2009-04-24 03:49:46
function clearCookie()
{
var strCookie = document.cookie;
var arrCookie = strCookie.split(";");
var i;
var expires = new Date();
expires.setDate(expires.getDate() - 1);
for(i=0; i<arrCookie.length; i++)
{
  document.cookie = arrCookie[i].split('=')[0]+'=null;expires=' + expires.toGMTString();
}
}

上面的代码如果在根目录下运行能够清除cookeis,如果放在子目录下,这个程序就无效了,这是什么原因呢?
...全文
646 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvye0901 2010-07-13
  • 打赏
  • 举报
回复
dsadasdasd
universeroc 2009-10-20
  • 打赏
  • 举报
回复
SDGHJKLJHGFDSAs答复该回家快乐就好割发代首
  • 打赏
  • 举报
回复
谢谢了
schinar 2009-04-24
  • 打赏
  • 举报
回复
谢谢各位。
xiaojing7 2009-04-24
  • 打赏
  • 举报
回复
[code=HTML]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<title>Cookie处理函数练习</title>
<script language="JavaScript" type="text/javascript">
var $=function(el){
return (typeof el=='object')?el:document.getElementById(el);
};
var addCookie=function(objName,objValue,objHours){//添加cookie
var str = objName + "=" + escape(objValue);
if(objHours > 0){//为0时不设定过期时间,浏览器关闭时cookie自动消失
var date = new Date();
var ms = objHours*3600*1000;
date.setTime(date.getTime() + ms);
str += "; expires=" + date.toGMTString();
}
document.cookie = str;
alert("添加cookie成功");
};
var getCookie=function(objName){//获取指定名称的cookie的值
var arrStr = document.cookie.split("; ");
for(var i = 0;i < arrStr.length;i ++){
var temp = arrStr[i].split("=");
if(temp[0] == objName){
return unescape(temp[1]);
}
}
};
var delCookie=function(name){//为了删除指定名称的cookie,可以将其过期时间设定为一个过去的时间
var date = new Date();
date.setTime(date.getTime() - 10000);
document.cookie = name + "=a; expires=" + date.toGMTString();
alert("删除成功");
};
var add=function(){//添加Cookie
var cookie_name = $("cookie_name").value;
var cookie_value = $("cookie_value").value;
var cookie_expireHours = $("cookie_expiresHours").value;
if(cookie_name==""||cookie_value==""){
alert("请填写完整Cookie的名称和值");
return;
}
addCookie(cookie_name,cookie_value,cookie_expireHours);
};
var getall=function(){//读取所有保存的cookie字符串
var str = document.cookie;
if(str == ""){
str = "没有保存任何cookie";
}
alert(str);
};
var get=function(){//读取单个该名称的cookie
var cookie_name = $("cookie_name").value;
var cookie_value = getCookie(cookie_name);
if(cookie_name ==""){
alert("请填写名称,根据名称进行查找");
return;
}
if(cookie_value==null){
cookie_value="没有该名称的cookie";
}
alert(cookie_value);
};
var del=function(){//删除该名称的cookie
var cookie_name = $("cookie_name").value;
if(cookie_name==""){
alert("请填写名称,根据名称进行删除");
return;
}
delCookie(cookie_name);
};
</script>
</head>
<body>
<form name="myform">
<div><label for="cookie_name">Cookie名称:</label><input type="text" name="cookie_name" /></div>
<div><label for="cookie_value">Cookie  值:</lable><input type="text" name="cookie_value" /></div>
<div><label for="cookie_expireHours">过期时间(小时):</lable><input type="text" name="cookie_expiresHours" /></div><hr/>
<div>
<input type="button" value="添加该cookie" onclick="add()" />
<input type="button" value="读取所有cookie" onclick="getall()" />
<input type="button" value="读取该名称cookie的值" onclick="get()" />
<input type="button" value="删除该名称cookie" onclick="del()" />
</div>
</form>
<hr />
</body>
</html>
[/CODE]
renzaijiang 2009-04-24
  • 打赏
  • 举报
回复
我想是访问权限是当前目录和子目录的cookies
不能从子目录往上访问
lihan6415151528 2009-04-24
  • 打赏
  • 举报
回复
肯定是你没有找到路径了

如果是java的话 加上request.getContextPath()试试
luojihaidao 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hookee 的回复:]
加个path=/;试试看
document.cookie = arrCookie[i].split('=')[0]+'=null;path=/;expires=' + expires.toGMTString();
[/Quote]

不错, 可以是你页面的路径不在根目录下。所有没有权限了。

默认没有设置path的话path就是页面所在的目录下, 这个cookie也只能被这个目录和这个目录下的子目录的页面所访问。

要想全访问就设置path=/
hookee 2009-04-24
  • 打赏
  • 举报
回复
加个path=/;试试看
document.cookie = arrCookie[i].split('=')[0]+'=null;path=/;expires=' + expires.toGMTString();

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧