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 相关文章推荐
js 自制滚动条的小例子
Mar 16 Javascript
node.js中Socket.IO的进阶使用技巧
Nov 04 Javascript
jQuery函数map()和each()介绍及异同点分析
Nov 08 Javascript
JS实现CheckBox复选框全选全不选功能
May 06 Javascript
在JavaScript中操作时间之setYear()方法的使用
Jun 12 Javascript
JavaScript实现经典排序算法之选择排序
Dec 28 Javascript
基于对象合并功能的实现示例
Oct 10 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
Aug 10 Javascript
微信小程序的部署方法步骤
Sep 04 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
Apr 11 Javascript
JS正则表达式封装与使用操作示例
May 15 Javascript
一篇文章带你从零快速上手Rollup
Sep 07 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配置参数总结
2013/06/14 PHP
php 解压rar文件及zip文件的方法
2014/05/05 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
javascript实现计算器功能
2020/03/30 Javascript
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
小小聊天室Python代码实现
2016/08/17 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
介绍一下Make? 为什么使用make
2013/12/08 面试题
租房协议书怎么写
2014/04/10 职场文书
会计专业求职信
2014/08/10 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
交通工程专业推荐信
2014/09/06 职场文书
2014幼儿园教师个人工作总结
2014/11/08 职场文书
科技馆观后感
2015/06/08 职场文书