练手,一个操作cookie的类。请高手指正。

心云意水 2003-10-26 04:17:44
<script>
function eyunCookie()
{this.key="";//初始化key。
this.value="";//初始化key's value。
this.expires=0;//初始化cookie的有效时间,单位毫秒。
this.init=function()//对象初始化
{this.key="";
this.value="";
this.expires=0;
}
this.set=function(key,value,expires)//设置cookie
{if(this.key=="")this.key=key;
if(this.value=="")this.value=value;
if(this.expires<=0)this.expires=expires;
if(this.key==""||typeof(this.key)!="string")
{alert("请先设置欲保存的cookie名称!");
this.init();
return false;
}
if(this.key.match(/[,; ]/))
{alert("cookie名称中不能包含“,”、“;”或空格!");
this.init();
return false;
}
if(this.value.toString().match(/[,; ]/)||typeof(this.value)=="undefined")
{alert("cookie值中不能包含“,”、“;”或空格!");
this.init();
return false;
}
if(this.expires<=0||typeof(this.expires)!="number")
{alert("请先正确设置cookie的有效时间!");
this.init();
return false;
}
var cookie=document.cookie;
if(cookie.indexOf(this.key+"=")!=-1)
{if(!confirm("欲保存的cookie名称已经存在,是否要进行替换?"))
{this.init();
return false;
}
}
var dt=new Date();
dt.setTime(dt.getTime()+this.expires);
document.cookie=this.key+"="+this.value+";expires="+dt.toGMTString();
this.init();
return true;
}
this.get=function(key)//取得名为key的cookie的值
{if(key==""||key.match(/[,; ]/))
{alert("请正确设置欲查找的cookie名称!")
return false;
}
var cookie=document.cookie;
var start=cookie.indexOf(key+"=");
if(start==-1)
{alert("欲查找的cookie不存在!")
return false;
}
var end=cookie.indexOf(";",start);
if(end==-1)
end=cookie.length;
var getCookie=cookie.substring(start+key.length+1,end);
alert("cookie:"+key+"的值为"+getCookie);
return getCookie;
}
this.showAll=function(){alert("共有以下cookie对:\n"+document.cookie.split(";").toString().replace(/,/g,"\n"));}//显示所有cookie
this.del=function(key)//删除名为key的cookie
{if(key==""||key.match(/[,; ]/))
{alert("请正确设置欲删除的cookie名称!")
return false;
}
var dt=new Date();
dt.setTime(dt.getTime());
document.cookie=key+"=eyunDelete;expires="+dt.toGMTString();
this.init();
return true;
}
this.destroy=function()//销毁所有cookie
{var dt=new Date();
dt.setTime(dt.getTime());
while(document.cookie!="")
document.cookie=document.cookie+";expires="+dt.toGMTString();
this.init();
return true
}
}
var cookieTest=new eyunCookie()
function settest()
{cookieTest.key="test"
cookieTest.value="ok"
cookieTest.expires=31536000000
cookieTest.set()
}
</script>
<input type=button onclick=cookieTest.showAll() value=read><input type=button onclick="cookieTest.set('a','test',31536000000)" value=setA><input type=button onclick="settest();" value=setTest><input type=button onclick="cookieTest.destroy()" value=clear><input type=button onclick=cookieTest.get("test") value=gettest><input type=button onclick=cookieTest.get("a") value=geta><input type=button onclick=cookieTest.set("test",1,31536000000) value=resetTest><input type=button onclick=cookieTest.del("test") value=delTest>
...全文
32 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
CDSoftwareWj 2003-10-28
  • 打赏
  • 举报
回复
http://expert.csdn.net/expert/topic/2402/2402261.xml?temp=.263

帮忙看看,谢谢大家

---------
春困秋乏夏打盹,睡不醒的冬三月 ^^!
blues-star 2003-10-27
  • 打赏
  • 举报
回复
一般都是4个空格吧?

我一般这么写哦,还凑合啦

function a(){
//
// Method b.
//
this.b() = function(){
throw "Fail."; // Exception
}
}
心云意水 2003-10-27
  • 打赏
  • 举报
回复
to runmin(仁者无敌):
多谢提醒,第一个问题的确应该注意。
不知道所谓结构不好看是不是指代码的缩进?这个……我用ep写的,其用自动缩进,而且习惯上喜欢用2个空格替换tab,结果就成了这个样子:(
fangpeng2003 2003-10-27
  • 打赏
  • 举报
回复
好好学习
blues-star 2003-10-27
  • 打赏
  • 举报
回复
类里不要用过多的alert尽量用throw抛出异常,代码的结构不太好看,注释存在问题。
longshenwang 2003-10-27
  • 打赏
  • 举报
回复
UP...
aocool 2003-10-27
  • 打赏
  • 举报
回复
消化ing..
luok 2003-10-26
  • 打赏
  • 举报
回复
up
kingdomzhf 2003-10-26
  • 打赏
  • 举报
回复
sc
zhfkiller 2003-10-26
  • 打赏
  • 举报
回复
mark

87,921

社区成员

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

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