javascript cookie操作类的实现代码小结附使用方法


Posted in Javascript onJune 02, 2010

第一种方法:cookie操作类,代码封装了,下面也有使用方法,大家可以参考下。

String.prototype.Trim = function() 
{ 
return this.replace(/^\s+/g,"").replace(/\s+$/g,""); 
} 
function JSCookie() 
{ 
this.GetCookie = function(key) 
{ 
var cookie = document.cookie; 
var cookieArray = cookie.split(';'); 
var getvalue = ""; 
for(var i = 0;i<cookieArray.length;i++) 
{ 
if(cookieArray[i].Trim().substr(0,key.length) == key) 
{ 
getvalue = cookieArray[i].Trim().substr(key.length + 1); 
break; 
} 
} 
return getvalue; 
}; 
this.GetChild = function(cookiekey,childkey) 
{ 
var child = this.GetCookie(cookiekey); 
var childs = child.split('&'); 
var getvalue = ""; 
for(var i = 0;i < childs.length;i++) 
{ 
if(childs[i].Trim().substr(0,childkey.length) == childkey) 
{ 
getvalue = childs[i].Trim().substr(childkey.length + 1); 
break; 
} 
} 
return getvalue; 
}; 
this.SetCookie = function(key,value,expire,domain,path) 
{ 
var cookie = ""; 
if(key != null && value != null) 
cookie += key + "=" + value + ";"; 
if(expire != null) 
cookie += "expires=" + expire.toGMTString() + ";"; 
if(domain != null) 
cookie += "domain=" + domain + ";"; 
if(path != null) 
cookie += "path=" + path + ";"; 
document.cookie = cookie; 
}; 
this.Expire = function(key) 
{ 
expire_time = new Date(); 
expire_time.setFullYear(expire_time.getFullYear() - 1); 
var cookie = " " + key + "=e;expires=" + expire_time + ";" 
document.cookie = cookie; 
} 
}

用法:
一、设置cookie
var cookie = new JSCookie();
//普通设置
cookie .SetCookie("key1","val1");
//过期时间为一年
var expire_time = new Date();
expire_time.setFullYear(expire_time.getFullYear() + 1);
cookie .SetCookie("key2","val2",expire_time);
//设置域及路径,带过期时间
cookie .SetCookie("key3","val3",expire_time,".cnblogs.com","/");
//设置带子键的cookie,子键分别是k1,k2,k3
cookie .SetCookie("key4","k1=1&k2=2&k3=3");
二、读取cookie
//简单获取
cookie .GetCookie("key1");
cookie .GetCookie("key2");
cookie .GetCookie("key3");
cookie .GetCookie("key4");
//获取key4的子键k1值
cookie .GetChild("key4","k1");
三、删除
cookie .Expire("key1");
cookie .Expire("key2");
cookie .Expire("key3");
cookie .Expire("key4");
第二种方法:cookie操作函数,三水点靠木也是用的这个。大家可以根据需要选择。
function setCookie(name, value) //cookies设置JS 
{ 
var argv = setCookie.arguments; 
var argc = setCookie.arguments.length; 
var expires = (argc > 2) ? argv[2] : null; 
if(expires!=null) 
{ 
var LargeExpDate = new Date (); 
LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*3600*24)); 
} 
document.cookie = name + "=" + escape (value)+((expires == null) ? "" : ("; expires=" +LargeExpDate.toGMTString())); 
} function getCookie(Name) //cookies读取JS 
{ 
var search = Name + "=" 
if(document.cookie.length > 0) 
{ 
offset = document.cookie.indexOf(search) 
if(offset != -1) 
{ 
offset += search.length 
end = document.cookie.indexOf(";", offset) 
if(end == -1) end = document.cookie.length 
return unescape(document.cookie.substring(offset, end)) 
} 
else return "" 
} 
}

使用方法:
if(getCookie("yxjok")!="ok"){ 
//判断cookie中yxjok的值是不是为ok,不是则显示下面的广告。 
document.write('<div id="3water_yxj"><a href="https://3water.com" onclick="Closeyxj()" target="_blank"><img src="https://3water.com/images/logo.gif" 
/></a></div>'); 
} 
function Closeyxj(){ 
//关闭广告的现实。并用cookies记录已经显示过了,这里的功能主要是关闭后一段时间不显示默认是24小时。 
$("3water_yxj").style.display='none'; 
setCookie("yxjok","ok",10); 
} function setADCookie(name, value) //主要是修改了cookies的过期时间,为几分钟。 
{ 
var argv = setADCookie.arguments; 
var argc = setADCookie.arguments.length; 
var expires = (argc > 2) ? argv[2] : null; 
if(expires!=null) 
{ 
var LargeExpDate = new Date (); 
LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*300)); 
} 
document.cookie = name + "=" + escape (value)+((expires == null) ? "" : ("; expires=" +LargeExpDate.toGMTString())); 
}
Javascript 相关文章推荐
JS 显示当前日期与时间的代码
Mar 24 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
Apr 16 Javascript
Javascript处理DOM元素事件实现代码
May 23 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
Dec 11 Javascript
jquery模拟实现鼠标指针停止运动事件
Jan 12 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
Jan 28 Javascript
javascript日期比较方法实例分析
Jun 17 Javascript
在Vue中使用echarts的方法
Feb 05 Javascript
详解vuex结合localstorage动态监听storage的变化
May 03 Javascript
解决element UI 自定义传参的问题
Aug 22 Javascript
Node.js原生api搭建web服务器的方法步骤
Feb 15 Javascript
vue中的v-if和v-show的区别详解
Sep 01 Javascript
js操作select控件的几种方法
Jun 02 #Javascript
Jquery升级新版本后选择器的语法问题
Jun 02 #Javascript
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
Jun 02 #Javascript
JQuery index()方法使用代码
Jun 02 #Javascript
JQuery下的Live方法和$.browser方法使用代码
Jun 02 #Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
Jun 01 #Javascript
一些经常会用到的Javascript检测函数
May 31 #Javascript
You might like
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
php计算数组不为空元素个数的方法
2014/01/27 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
EasyUI中的tree用法介绍
2011/11/01 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
Javascript 数组排序详解
2014/10/22 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
js+css实现打字效果
2020/06/24 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
2020/03/02 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
对numpy中轴与维度的理解
2018/04/18 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
python实现自动打卡的示例代码
2020/10/10 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
小学课外活动总结
2014/07/09 职场文书
委托书格式范文
2015/01/28 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL