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编程起步(第七课)
Feb 27 Javascript
Jquery 例外被抛出且未被接住原因介绍
Sep 04 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
May 14 Javascript
JS获取数组最大值、最小值及长度的方法
Nov 24 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
Dec 11 Javascript
探寻JavaScript中this指针指向
Apr 23 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
Jun 16 Javascript
通过jquery实现页面的动画效果(实例代码)
Sep 18 Javascript
基于element-ui的rules中正则表达式
Sep 04 Javascript
详解vue中axios的使用与封装
Mar 20 Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
May 21 Javascript
前端JavaScript大管家 package.json
Nov 02 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 base64编码后解码乱码的解决办法
2014/06/19 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
javascript解决IE6下hover问题的方法
2015/07/28 Javascript
JS+CSS实现滑动切换tab菜单效果
2015/08/25 Javascript
Javascript技术难点之apply,call与this之间的衔接
2015/12/04 Javascript
JS中BOM相关知识点总结(必看篇)
2016/11/22 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
2017/01/06 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
2017/09/30 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
Python实现类继承实例
2014/07/04 Python
Python赋值语句后逗号的作用分析
2015/06/08 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
win10下python3.5.2和tensorflow安装环境搭建教程
2018/09/19 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
德国团购网站:Groupon德国
2018/03/13 全球购物
工程管理专业个人求职信范文
2013/12/07 职场文书
九年级物理教学反思
2014/01/29 职场文书
物业管理毕业生的自我评价
2014/02/17 职场文书
电子信息工程自荐信
2014/05/26 职场文书
英文感谢信格式
2015/01/21 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
nginx 添加http_stub_status_module模块
2022/05/25 Servers