js操作cookies类Word文件下载.docx
《js操作cookies类Word文件下载.docx》由会员分享,可在线阅读,更多相关《js操作cookies类Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
"
)!
=-1){
var_sp,_name,_tp,_tars,_tarslength;
var_item=document.cookie.split("
);
var_itemlength=_item.length;
while(_itemlength>
0){
_sp=_item[--_itemlength].split("
="
_name=_sp[0];
_tp=_sp[1].split("
"
_tars=_tp.slice(1,_tp.length);
this._Cookie[_name]=[];
this._Cookie[_name]=_tars;
this._Cookie[_name]["
timeout"
]=_tp[0];
returntrue;
returnfalse;
this.Save=function(){
var_str,_ars,_mars,_marslength,timeout,i,key;
for(keyinthis._Cookie){
if(!
this._Cookie[key])return;
_str=[];
_mars=CookieClass._Cookie[key];
_marslength=_mars.length;
for(i=0;
_marslength;
i++)_str[_str.length]=escape(_mars[i]);
document.cookie=key+"
+_mars["
]+(_str.length>
0?
:
)+_str+"
expires="
+newDate(parseInt(_mars["
])).toGMTString();
this.GetCookieCount=function(){
var_length=0,key;
for(keyinthis._Cookie)_length++;
return_length;
this.Create=function(name,days){
this._Cookie[name]=[];
this._Cookie[name]["
]=newDate().getTime()+days*86400000;
this.Modify=function(name,days){
this.Create(name,days);
this.GetTime=function(name){
returnnewDate(parseInt(this._Cookie[name]["
]));
this.Delete=function(name){
this.Create(name,0);
this.AddItem=function(name,value){
this._Cookie[name][this._Cookie[name].length]=value;
this.DelItem=function(name,index){
this._Cookie[name].splice(index,1);
this.GetCount=function(name){
returnthis._Cookie[name].length;
this.GetItem=function(name,index){
returnthis._Cookie[name][index];
/script>
/*
====================================
Design:
Flashsoft
浏览器能够通过Cookies保留有关数据。
象Windows的注册表一样,用户不必知道Cookies的具体位置,浏览器能找到这些数据。
第六代的浏览器,不管是IE还是NS都支持document.cookie属性。
通过这个属性来读取或修改Cookies的值。
不过Cookies的存储形式是非结构化的长字符串,需要经过相应的解析后才有意义。
Cookies的表达如下,除了name=value以外,其它均为可选:
name=value;
expires=date;
domain=domainname
path=pathname;
secure;
例如:
User=HockeyDude;
expires=Thu,01-Jan-7000:
00:
01GMT;
domain=;
path=/images;
Pass=Gretzky;
expires=Thu,01-Jan-7000:
secure;
这么长的两个字符串只代表了两个Cookies。
如果还要再加上电子信箱或其他信息就还得加长字符串。
通常都是通过分解这样的字符串来取得各个变量或元素的。
这实在是费时费力的事。
使用面向对象设计(ObjectOrientedDesign,OOD)的思路来编写Cookies处理函数,其特点如下:
便于增删子项。
这是很重要的,有些浏览器限制Cookies的使用数量。
通过修改函数可以容易地修改时效数据。
通常的做法很麻烦,要拷贝Cookies,删除原Cookies,修改并重写Cookies。
Cookies和它的子项存放在数组里。
可以根据需要快速而有效地进行修改。
这样也无须解析那长长的字符串。
Cookies对象的使用
以下是对象的公有方法:
方括号[]内是可选参数
//构造
Cookie([定界符,缺省为句点])-构造函数
//初始化
GetCookieCount()-返回Cookies数量
Create(name,days)-创建Cookies及其时效天数
Modify(name,days)-修改Cookies的时效天数
Delete(name)-删除Cookies及其子项
GetTime(name)-返回指定Cookies的过期时间
GetCount(name)-返回Cookies的子项数量
AddItem(name,value)-增加一个子项
GetItem(name,index)-返回指定索引的子项
DelItem(name,index)-删除指定的子项
//存取
Load()-读取Cookies
Save()-存储Cookies
下面是应用实例:
*/
varCookieClass=newCookie();
if(!
CookieClass.Load()){
CookieClass.Create("
Pass"
1);
User"
CookieClass.AddItem("
Ps1"
Ps2"
Ps3"
Ps4"
Ps5"
Ps6"
CookieClass.DelItem("
CookieClass.Save();
alert("
Cookie过期时间:
+CookieClass.GetTime("
).toLocaleString());
alert(document.cookie);
方法二:
scriptlanguage="
Javascript"
functioneyunCookie(){
this.key="
//初始化key。
this.value="
//初始化key'
svalue。
this.expires=0;
//初始化cookie的有效时间,单位毫秒。
this.init=function(){//对象初始化
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;
||typeof(this.key)!
string"
){
alert("
请先设置欲保存的cookie名称!
this.init();
if(this.key.match(/[,;
]/)){
cookie名称中不能包含“,”、“;
”或空格!
if(this.value.toString().match(/[,;
]/)||typeof(this.value)=="
undefined"
cookie值中不能包含“,”、“;
=0||typeof(this.expires)!
number"
请先正确设置cookie的有效时间!
varcookie=document.cookie;
if(cookie.indexOf(this.key+"
confirm("
欲保存的cookie名称已经存在,是否要进行替换?
)){
vardt=newDate();
dt.setTime(dt.getTime()+this.expires);
document.cookie=this.key+"
+this.value+"
+dt.toGMTString();
this.get=function(key){//取得名为key的cookie的值
if(key=="
||key.match(/[,;
请正确设置欲查找的cookie名称!
)
varstart=cookie.indexOf(key+"
if(start==-1){
欲查找的cookie不存在!
varend=cookie.indexOf("
start);
if(end==-1)end=cookie.length;
vargetCookie=cookie.substring(start+key.length+1,end);
cookie:
+key+"
的值为"
+getCookie);
returngetCookie;
this.showAll=function(){//显示所有cookie
共有以下cookie对:
\n"
+document.cookie.split("
).toString().replace(/,/g,"
));
this.del=function(key){//删除名为key的cookie
请正确设置欲删除的cookie名称!
dt.setTime(dt.getTime());
=eyunDelete;
this.destroy=function(){//销毁所有cookie
while(document.cookie!
document.cookie=document.cookie+"
}
varcookieTest=neweyunCookie()
functionsettest(){
cookieTest.key="
test"
cookieTest.value="
ok"
cookieTest.expires=31536000000
cookieTest.set()
inputtype=buttononclick=cookieTest.showAll()value=read>
inputtype=buttononclick="
cookieTest.set('
a'
'
test'
31536000000)"
value=setA>
settest();
value=setTest>
cookieTest.destroy()"
value=clear>
inputtype=buttononclick=cookieTest.get("
)value=gettest>
a"
)value=geta>
inputtype=buttononclick=cookieTest.set("
1,31536000000)value=resetTest>
inputtype=buttononclick=cookieTest.del("
)value=delTest>