`
azheng270
  • 浏览: 91081 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

一个比较容易调用 功能比较完善的 cookie 操作类 附带一些简单的应用示例

阅读更多

一个比较容易调用 功能比较完善的 cookie 操作类

附带一些简单的应用示例

varaxtic=axtic||...{};
axtic.Cookie
=...{
/**//*
函数名称:axtic.Cookie.Get([stringname])
函数功能:得到Cookie
参数:name可选项,要取得的Cookie名称
说明:name为空时将通过数组形式返回全部Cookie,name不为空时返回此Cookie名称的值,没有任何值时返回undefined
*/

Get:
function(name)...{
varcv=document.cookie.split(";");//使用";"分割Cookie
varcva=[],cvat=[],cvam=[],temp;
/**//*循环的得到Cookie名称与值*/
for(i=0;i<cv.length;i++)...{
temp
=cv[i].split("=");//用"="分割Cookie的名称与值
if(temp[0].indexOf("_divide_")>0)...{
cvam[temp[
0]]=temp[1];
}
else...{
if(temp[0]!="")cvat[i]=[temp[0],temp[1]];
}

}

for(i=0;i<cvat.length;i++)...{
if(cvat[i])...{
if(cvat[i][1].substr(0,8)!="^divide|")...{
/**//*小于4K的Cookie处理*/
cva[cvat[i][
0]]=unescape(cvat[i][1]);
}
else...{
/**//*大于4K的Cookie处理*/
varsta=cvat[i][1].indexOf("$"),tot=cvat[i][1].substring(8,sta);
cva[cvat[i][
0]]=cvat[i][1].substring(sta+1);
for(j=1;j<tot;j++)...{
cva[cvat[i][
0]]+=cvam[cvat[i][0]+"_divide_"+j];
}

cva[cvat[i][
0]]=unescape(cva[cvat[i][0]]);
}

}

}

if(name)returncva[name];//如果有name则输出这个name的Cookie值
//elsereturncva;//如果没有name则输出以名称为key,值为Value的数组
elsereturnfalse;
}
,
/**//*
函数名称:axtic.Cookie.Set(stringname,stringvalue[,intexpires[,stringpath[,stringdomain[,stringsecure]]]])
函数功能:存入Cookie
参数:name必要项,要存入的Cookie名称
value必要项,要存入的Cookie名称对应的值
expires可选项,Cookie的过期时间,可以填入以秒为单位的保存时间,也可以填入日期格式(wdy,DD-Mon-YYYYHH:MM:SSGMT)的到期时间
path可选项,Cookie在服务器端的有效路径
domain可选项,该Cookie的有效域名
secure可选项,指明Cookie是否仅通过安全的HTTPS连接传送,0或false或空时为假
说明:保存成功则返回true,保存失败返回false
*/

Set:
function(name,value,expires,path,domain,secure,divide)...{
if(!divide)varvalue=escape(value);
if(!name||!value)returnfalse;//如果没有name和value则返回false
if(name==""||value=="")returnfalse;//如果name和value为空则返回false
/**//*对于过期时间的处理*/
if(expires)...{
/**//*如果是数字则换算成GMT时间,当前时间加上以秒为单位的expires*/
if(/^[0-9]+$/.test(expires))...{
vartoday=newDate();
expires
=newDate(today.getTime()+expires*1000).toGMTString();
/**//*判断expires格式是否正确,不正确则赋值为undefined*/
}
elseif(!/^wed,d...{2}w...{3}d...{4}d...{2}:d...{2}:d...{2}GMT$/.test(expires))...{
expires
=undefined;
}

}

if(name.indexOf("_divide_")<1&&!divide)...{
this.Del(name,path,domain);//删除前一次存入的Cookie
}

/**//*合并cookie的相关值*/
varcv=name+"="+value+";"
+((expires)?"expires="+expires+";":"")
+((path)?"path="+path+";":"")
+((domain)?"domain="+domain+";":"")
+((secure&&secure!=0)?"secure":"");
/**//*判断Cookie总长度是否大于4K*/
if(cv.length<4096)...{
document.cookie
=cv;//写入cookie
}
else...{
/**//*对于大于4K的Cookie的操作*/
varmax=Math.floor(value.length/3800)+1;
for(i=0;i<max;i++)...{
if(i==0)...{
this.Set(name,'^divide|'+max+'$'+value.substr(0,3800),expires,path,domain,secure,true);
}
else...{
this.Set(name+"_divide_"+i,value.substr(i*3800,3800),expires,path,domain,secure,true);
}

}

}

returntrue;
}
,
/**//*
函数名称:axtic.Cookie.Del(stringname[,stringpath[,stringdomain]])
函数功能:删除Cookie
参数:name必要项,要删除的Cookie名称
path可选项,要删除的Cookie在服务器端的有效路径
domain可选项,要删除的Cookie的有效域名
说明:删除成功返回true,删除失败返回false
*/

Del:
function(name,path,domain)...{
if(!name)returnfalse;//如果没有name则返回false
if(name=="")returnfalse;//如果name为空则返回false
if(!this.Get(name))returnfalse;//如果要删除的name值不存在则返回false
/**//*对于大于4K的Cookie进行处理*/
if(escape(this.Get(name)).length>3800)...{
varmax=Math.floor(escape(this.Get(name)).length/3800)+1;
for(i=1;i<max;i++)...{
/**//*合并Cookie的相关值,并删除*/
document.cookie
=name+"_divide_"+i+"=;"
+((path)?"path="+path+";":"")
+((domain)?"domain="+domain+";":"")
+"expires=Thu,01-Jan-197000:00:01GMT;";
}

}

/**//*合并Cookie的相关值,并删除*/
document.cookie
=name+"=;"
+((path)?"path="+path+";":"")
+((domain)?"domain="+domain+";":"")
+"expires=Thu,01-Jan-197000:00:01GMT;";
returntrue;
}

}


top
分享到:
评论

相关推荐

    Flash as3 cookie 操作实例源码

    Flash as3 cookie 操作实例源码 包括调用 之类的

    vc++ 应用源码包_1

    VC++ ini文件读写操作类实例 VC++版源代码统计工具 内含自绘CMenu、CButton、CDialog、CStatic、CListCtrl等。 VC++6.0 控制摄像头 一个视频捕捉类对摄像头的操作。 VC+++暴风影音(Media+Player+Classic)源码 ...

    vc++ 应用源码包_2

    VC++ ini文件读写操作类实例 VC++版源代码统计工具 内含自绘CMenu、CButton、CDialog、CStatic、CListCtrl等。 VC++6.0 控制摄像头 一个视频捕捉类对摄像头的操作。 VC+++暴风影音(Media+Player+Classic)源码 ...

    vc++ 应用源码包_6

    VC++ ini文件读写操作类实例 VC++版源代码统计工具 内含自绘CMenu、CButton、CDialog、CStatic、CListCtrl等。 VC++6.0 控制摄像头 一个视频捕捉类对摄像头的操作。 VC+++暴风影音(Media+Player+Classic)源码 ...

    vc++ 应用源码包_3

    VC++ ini文件读写操作类实例 VC++版源代码统计工具 内含自绘CMenu、CButton、CDialog、CStatic、CListCtrl等。 VC++6.0 控制摄像头 一个视频捕捉类对摄像头的操作。 VC+++暴风影音(Media+Player+Classic)源码 ...

    vc++ 应用源码包_5

    VC++ ini文件读写操作类实例 VC++版源代码统计工具 内含自绘CMenu、CButton、CDialog、CStatic、CListCtrl等。 VC++6.0 控制摄像头 一个视频捕捉类对摄像头的操作。 VC+++暴风影音(Media+Player+Classic)源码 ...

    asp.net知识库

    制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标放在一个连接上,会显示图片(类似tooltip) 使用microsoft.web.ui...

    vc++ 开发实例源码包

    操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等功能。 CHtmlViewProjV2 详细演示了HtmlView的使用与HtmlView事件站点拦截的实现、js调用。 CIVStringSet_Demo 自定义了一个...

    HttpClient以及获取页面内容应用

    压缩包中含有多个文档,从了解httpclient到应用。 httpClient 1httpClint 1.1简介 HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持...

    .net开源的综合开发框架wojilu框架.zip

    可以和WebForm或微软MVC完美、无缝集成,共存于一个项目(使用同一个session/cookie/数据库)总特点: 功能强大、开放源代码、多语言支持,并带有丰富的二次开发教程和示例代码,扩展方便灵活。(可以和 asp.net ...

    Delphi5开发人员指南

    1.5 创建一个简单的应用程序 11 1.6 事件机制的优势在哪里 12 1.7 加速原型化 13 1.8 可扩展的组件和环境 13 1.9 IDE最重要的十点功能 13 1.10 总结 15 第2章 Object Pascal语言 16 2.1 注解 16 2.2 新的过程和函数...

    ASP200问.EXE

    145.如何通过XMLDom在服务器端操作XML文件(示例一) 145.如何通过XMLDom在服务器端操作XML文件(示例二) 146.如何使用XML实现不刷新页面查询数据库 147.如何把HTML表单提交的数据转化成XML文件(第一步) 147.如何...

    ExtAspNet_v2.3.2_dll

    -一个典型应用,在Window控件中打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。 -ExtAspNet.Alert.Show("参数错误!", String.Empty, ExtAspNet.ActiveWindow.GetCloseReference());...

    JavaScript王者归来part.1 总数2

     7.3.1 构造函数--一个双精度浮点数封装类的例子   7.3.2 缺省构造和拷贝构造   7.3.3 对象常量   7.4 对象的销毁和存储单元的回收   7.5 JavaScript的内置对象   7.5.1 Math对象   7.5.2 Date对象--...

    ASP.NET3.5从入门到精通

    3.2.2 创建一个类和其方法 3.2.3 类成员 3.2.4 构造函数和析构函数 3.3 对象的生命周期 3.3.1 类成员的访问 3.3.2 类的类型 3.3.3 .NET 的垃圾回收机制 3.4 使用命名空间 3.4.1 为什么要用命名空间 3.4.2 创建命名...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -一个典型应用,在Window控件中打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。 -ExtAspNet.Alert.Show("参数错误!", String.Empty, ExtAspNet.ActiveWindow.GetCloseReference());...

    python入门到高级全栈工程师培训 第3期 附课件代码

    06 django的一个简单应用 07 django静态文件之static 08 django的url控制系统 09 django的urlConf补充 第50章 01 django之视图函数的介绍 02 django视图之redirec 03 django模板之变量 04 django模板之过滤器 05 ...

    Python核心编程第二版(ok)

     2.19.2 如何访问一个模块函数或访问一个模块变量   2.20 实用的函数   2.21 练习   第3章 Python基础   3.1 语句和语法   3.1.1 注释(#)   3.1.2 继续()   3.1.3 多个语句构成代码组...

    ASP.NET的网页代码模型及生命周期

    Web应用实际上是没有状态的,这就说明Web应用程序不自动指示序列中的请求是否来自相同的浏览器或客户端,也无法判断浏览器是否一直在浏览一个页面或者一个站点,也无法判断用户执行了哪个操作并统计用户的喜好。...

Global site tag (gtag.js) - Google Analytics