javascript cookies 设置、读取、删除实例代码


Posted in Javascript onApril 12, 2010

刚整理了一些关于javascript cookies操作的文章,发现这篇文章也不错,推荐大家一起参考,选择需要的,不足的地方主要是对路径的设置,喜欢的朋友可以结合下。

<script> 
function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值 
{ 
var Days = 30; //此 cookie 将被保存 30 天 
var exp = new Date(); //new Date("December 31, 9998"); 
exp.setTime(exp.getTime() + Days*24*60*60*1000); 
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 
} 
function getCookie(name)//取cookies函数 
{ 
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); 
if(arr != null) return unescape(arr[2]); return null; 
} 
function delCookie(name)//删除cookie 
{ 
var exp = new Date(); 
exp.setTime(exp.getTime() - 1); 
var cval=getCookie(name); 
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString(); 
} SetCookie ("xiaoqi", "3") 
alert(getCookie('xiaoqi')); 
</script>

一个非常实用的javascript读写Cookie函数

function GetCookieVal(offset) 
//获得Cookie解码后的值 
{ 
var endstr = documents.cookie.indexOf (";", offset); 
if (endstr == -1) 
endstr = documents.cookie.length; 
return unescape(documents.cookie.substring(offset, endstr)); 
} 
function SetCookie(name, value) 
//设定Cookie值 
{ 
var expdate = new Date(); 
var argv = SetCookie.arguments; 
var argc = SetCookie.arguments.length; 
var expires = (argc > 2) ? argv[2] : null; 
var path = (argc > 3) ? argv[3] : null; 
var domain = (argc > 4) ? argv[4] : null; 
var secure = (argc > 5) ? argv[5] : false; 
if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 )); 
documents.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expdate.toGMTString())) 
+((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain)) 
+((secure == true) ? "; secure" : ""); 
} 
function DelCookie(name) 
//删除Cookie 
{ 
var exp = new Date(); 
exp.setTime (exp.getTime() - 1); 
var cval = GetCookie (name); 
documents.cookie = name + "=" + cval + "; expires="+ exp.toGMTString(); 
} 
function GetCookie(name) 
//获得Cookie的原始值 
{ 
var arg = name + "="; 
var alen = arg.length; 
var clen = documents.cookie.length; 
var i = 0; 
while (i < clen) 
{ 
var j = i + alen; 
if (documents.cookie.substring(i, j) == arg) 
return GetCookieVal (j); 
i = documents.cookie.indexOf(" ", i) + 1; 
if (i == 0) break; 
} 
return null; 
}

<SCRIPT language="javascript"> 
<!-- 
function openpopup(){ 
url="popup.htm" 
window.open("gonggao.htm","gonggao","width=260,height=212,left=200,top=0") 
} 
function get_cookie(Name) { 
var search = Name + "=" 
var returnvalue = ""; 
if (documents.cookie.length > 0) { 
offset = documents.cookie.indexOf(search) 
if (offset != -1) { 
offset += search.length 
end = documents.cookie.indexOf(";", offset); 
if (end == -1) 
end = documents.cookie.length; 
returnvalue=unescape(documents.cookie.substring(offset, end)) 
} 
} 
return returnvalue; 
} 
function helpor_net(){ 
if (get_cookie('popped')==''){ 
openpopup() 
documents.cookie="popped=yes" 
} 
} 
helpor_net() 
//--> 
</SCRIPT>

如果点了确定,只要不清cookie,以后访问都不会再提示,如果不点确定则每次都会提示。放在js文件里,全站包含

<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
var the_cookie = document.cookie; 
var broken_cookie = the_cookie.split(":"); 
var the_visiteraccepted = unescape(broken_cookie[1]); 
// 
if (the_visiteraccepted=="undefined"){ 
var tmp=confirm('中国人何时何地。'); 
if(tmp==false){ 
window.close(); 
}else{ 
var the_visiteraccepted = 1; 
var the_cookie = "ILoveChina=visiteraccepted:" + escape(the_visiteraccepted); 
document.cookie = the_cookie; 
} 
} 
//--> 
</SCRIPT>

1. Cookie的兼容性问题
??Cookie的格式有2个不同的版本,第一个版本,我们称为Cookie Version 0,是最初由Netscape公司制定的,也被几乎所有的浏览器支持。而较新的版本,Cookie Version 1,则是根据RFC 2109文档制定的。为了确保兼容性,JAVA规定,前面所提到的涉及Cookie的操作都是针对旧版本的Cookie进行的。而新版本的Cookie目前还不被Javax.servlet.http.Cookie包所支持。
??2. Cookie的内容
??同样的Cookie的内容的字符限制针对不同的Cookie版本也有不同。在Cookie Version 0中,某些特殊的字符,例如:空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,@符号,冒号,分号都不能作为Cookie的内容。这也就是为什么我们在例子中设定Cookie的内容为"Test_Content"的原因。
??虽然在Cookie Version 1规定中放宽了限制,可以使用这些字符,但是考虑到新版本的Cookie规范目前仍然没有为所有的浏览器所支持,因而为保险起见,我们应该在Cookie的内容中尽量避免使用这些字符

Javascript 相关文章推荐
Javascript String.replace的妙用
Sep 08 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
javascript制作网页图片上实现下雨效果
Feb 26 Javascript
JavaScript调用浏览器打印功能实例分析
Jul 17 Javascript
新手学习前端之js模仿淘宝主页网站
Oct 31 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
Jan 03 Javascript
Webpack devServer中的 proxy 实现跨域的解决
Jun 15 Javascript
layer.open关闭父窗口 以及调用父页面的方法
Aug 17 Javascript
浅谈Vue中render中的h箭头函数
Nov 07 Javascript
微信小程序缓存支持二次开发封装实现解析
Dec 16 Javascript
微信小程序自定义联系人弹窗
May 26 Javascript
JS代码简洁方式之函数方法详解
Jul 28 Javascript
javascript cookies操作集合
Apr 12 #Javascript
javascript 数组学习资料收集
Apr 11 #Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
Apr 11 #Javascript
JavaScript调用Activex控件的事件的实现方法
Apr 11 #Javascript
javascript dom 基本操作小结
Apr 11 #Javascript
JS Excel读取和写入操作(模板操作)实现代码
Apr 11 #Javascript
一个js的tab切换效果代码[代码分离]
Apr 11 #Javascript
You might like
php 保留小数点
2009/04/21 PHP
php的array_multisort()使用方法介绍
2012/05/16 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
php实现搜索类封装示例
2016/03/31 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
Prototype Number对象 学习
2009/07/19 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
一个判断抢购时间是否到达的简单的js函数
2014/06/23 Javascript
jquery获取radio值实例
2014/10/16 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
2020/09/22 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
关于Python如何避免循环导入问题详解
2017/09/14 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Django中使用Celery的方法步骤
2020/12/07 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
农民工工资发放承诺书
2014/03/31 职场文书
《灰椋鸟》教学反思
2014/04/27 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
大学生学期个人总结
2015/02/12 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle