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 相关文章推荐
arguments对象
Nov 20 Javascript
扩展javascript的Date方法实现代码(prototype)
Nov 20 Javascript
12 款 JS 代码测试必备工具(翻译)
Dec 13 Javascript
详解webpack进阶之插件篇
Jul 06 Javascript
vue实现form表单与table表格的数据关联功能示例
Jan 29 Javascript
JavaScript中的连续赋值问题实例分析
Jul 12 Javascript
JavaScript实现身份证验证代码实例
Aug 26 Javascript
JS防抖和节流实例解析
Sep 24 Javascript
vue h5移动端禁止缩放代码
Oct 28 Javascript
javascript中的with语句学习笔记及用法
Feb 17 Javascript
Vue实现购物车实例代码两则
May 30 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
Jul 20 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
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
php判断输入是否是纯数字,英文,汉字的方法
2015/03/05 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
jQuery学习笔记[1] jQuery中的DOM操作
2010/12/03 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
jquery的map与get方法详解
2013/11/04 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
vue.js 使用axios实现下载功能的示例
2018/03/05 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
python client使用http post 到server端的代码
2013/02/10 Python
Python中基础的socket编程实战攻略
2016/06/01 Python
Bottle框架中的装饰器类和描述符应用详解
2017/10/28 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
Python实现时间序列可视化的方法
2019/08/06 Python
PyQt5实现画布小程序
2020/05/30 Python
如何用Python绘制3D柱形图
2020/09/16 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
写给女朋友的保证书
2015/05/09 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python