分享
 
 
 

JavaScript写的Cookie类

王朝html/css/js·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

1

<script language="JScript">

2

function Cookie(delim){

3

this._Cookie=[];

4

this.Load=function(){

5

if(document.cookie.indexOf(";")!=-1){

6

var _sp,_name,_tp,_tars,_tarslength;

7

var _item=document.cookie.split("; ");

8

var _itemlength=_item.length;

9

while(_itemlength>0){

10

_sp=_item[--_itemlength].split("=");

11

_name=_sp[0];

12

_tp=_sp[1].split(",");

13

_tars=_tp.slice(1,_tp.length);

14

this._Cookie[_name]=[];

15

this._Cookie[_name]=_tars;

16

this._Cookie[_name]["timeout"]=_tp[0];

17

}

18

return true;

19

}

20

return false;

21

}

22

this.Save=function(){

23

var _str,_ars,_mars,_marslength,timeout,i,key;

24

for(key in this._Cookie){

25

if(!this._Cookie[key])return;

26

_str=[];

27

_mars=CookieClass._Cookie[key];

28

_marslength=_mars.length;

29

for(i=0;i<_marslength;i++)_str[_str.length]=escape(_mars[i]);

30

document.cookie=key+"="+_mars["timeout"]+(_str.length>0?",":"")+_str+(_mars["timeout"]==0?"":";expires="+new Date(parseInt(_mars["timeout"])).toGMTString());

31

}

32

33

}

34

this.GetCookieCount=function(){

35

var _length=0,key;

36

for(key in this._Cookie)_length++;

37

return _length;

38

}

39

this.Create=function(name,days){

40

days=days?days:0;

41

if(!this._Cookie[name])this._Cookie[name]=[];

42

this._Cookie[name]["timeout"]=days!=0?new Date().getTime()+parseInt(days)*86400000:0;

43

}

44

this.Modify=function(name,days){

45

this.Create(name,days);

46

}

47

this.GetTime=function(name){

48

return new Date(parseInt(this._Cookie[name]["timeout"]));

49

}

50

this.Delete=function(name){

51

this.Create(name,0);

52

}

53

this.AddItem=function(name,value){

54

this._Cookie[name][this._Cookie[name].length]=value;

55

}

56

this.DelItem=function(name,index){

57

var _ttime=this._Cookie[name]["timeout"];

58

this._Cookie[name]=this._Cookie[name].slice(0,index).concat(this._Cookie[name].slice(parseInt(index)+1,this._Cookie[name].length));

59

this._Cookie[name]["timeout"]=_ttime;

60

}

61

this.GetCount=function(name){

62

return this._Cookie[name].length;

63

}

64

this.GetItem=function(name,index){

65

return this._Cookie[name][index];

66

}

67

}

68

</script>

69

<script language="JScript">

70

var CookieClass=new Cookie();

71

if(!CookieClass.Load()){

72

CookieClass.Create("Pass",1);

73

CookieClass.AddItem("Pass","Ps1");

74

CookieClass.AddItem("Pass","Ps2");

75

CookieClass.AddItem("Pass","Ps3");

76

CookieClass.AddItem("Pass","Ps4");

77

CookieClass.DelItem("Pass",1);

78

CookieClass.Save();

79

}

80

alert("Cookie过期时间:"+CookieClass.GetTime("Pass").toLocaleString());

81

alert(document.cookie);

82

</script>

83

<script>

84

function eyunCookie()

85

{this.key="";//初始化key。

86

this.value="";//初始化key's value。

87

this.expires=0;//初始化cookie的有效时间,单位毫秒。

88

this.init=function()//对象初始化

89

{this.key="";

90

this.value="";

91

this.expires=0;

92

}

93

this.set=function(key,value,expires)//设置cookie

94

{if(this.key=="")this.key=key;

95

if(this.value=="")this.value=value;

96

if(this.expires<=0)this.expires=expires;

97

if(this.key==""||typeof(this.key)!="string")

98

{alert("请先设置欲保存的cookie名称!");

99

this.init();

100

return false;

101

}

102

if(this.key.match(/[,; ]/))

103

{alert("cookie名称中不能包含“,”、“;”或空格!");

104

this.init();

105

return false;

106

}

107

if(this.value.toString().match(/[,; ]/)||typeof(this.value)=="undefined")

108

{alert("cookie值中不能包含“,”、“;”或空格!");

109

this.init();

110

return false;

111

}

112

if(this.expires<=0||typeof(this.expires)!="number")

113

{alert("请先正确设置cookie的有效时间!");

114

this.init();

115

return false;

116

}

117

var cookie=document.cookie;

118

if(cookie.indexOf(this.key+"=")!=-1)

119

{if(!confirm("欲保存的cookie名称已经存在,是否要进行替换?"))

120

{this.init();

121

return false;

122

}

123

}

124

var dt=new Date();

125

dt.setTime(dt.getTime()+this.expires);

126

document.cookie=this.key+"="+this.value+";expires="+dt.toGMTString();

127

this.init();

128

return true;

129

}

130

this.get=function(key)//取得名为key的cookie的值

131

{if(key==""||key.match(/[,; ]/))

132

{alert("请正确设置欲查找的cookie名称!")

133

return false;

134

}

135

var cookie=document.cookie;

136

var start=cookie.indexOf(key+"=");

137

if(start==-1)

138

{alert("欲查找的cookie不存在!")

139

return false;

140

}

141

var end=cookie.indexOf(";",start);

142

if(end==-1)

143

end=cookie.length;

144

var getCookie=cookie.substring(start+key.length+1,end);

145

alert("cookie:"+key+"的值为"+getCookie);

146

return getCookie;

147

}

148

this.showAll=function(){alert("共有以下cookie对:\n"+document.cookie.split(";").toString().replace(/,/g,"\n"));}//显示所有cookie

149

this.del=function(key)//删除名为key的cookie

150

{if(key==""||key.match(/[,; ]/))

151

{alert("请正确设置欲删除的cookie名称!")

152

return false;

153

}

154

var dt=new Date();

155

dt.setTime(dt.getTime());

156

document.cookie=key+"=eyunDelete;expires="+dt.toGMTString();

157

this.init();

158

return true;

159

}

160

this.destroy=function()//销毁所有cookie

161

{var dt=new Date();

162

dt.setTime(dt.getTime());

163

while(document.cookie!="")

164

document.cookie=document.cookie+";expires="+dt.toGMTString();

165

this.init();

166

return true

167

}

168

}

169

var cookieTest=new eyunCookie()

170

function settest()

171

{cookieTest.key="test"

172

cookieTest.value="ok"

173

cookieTest.expires=31536000000

174

cookieTest.set()

175

}

176

</script>

177

<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>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有