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 相关文章推荐
发现的以前不知道的函数
Sep 19 Javascript
jquery ajax 登录验证实现代码
Sep 23 Javascript
基于jquery的一行代码轻松实现拖动效果
Dec 28 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
Jan 09 Javascript
jQuery解析Json实例详解
Nov 24 Javascript
微信小程序中单位rpx和rem的使用
Dec 06 Javascript
js模糊查询实例分享
Dec 26 Javascript
js实现文字向上轮播功能
Jan 13 Javascript
浅谈React中组件逻辑复用的那些事儿
May 21 Javascript
在Vue中使用HOC模式的实现
Aug 23 Javascript
vue form表单post请求结合Servlet实现文件上传功能
Jan 22 Vue.js
详解Node.js如何处理ES6模块
May 15 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
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
详解Vue项目引入CreateJS的方法(亲测可用)
2019/05/30 Javascript
el-select 下拉框多选实现全选的实现
2019/08/02 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
浅谈五大Python Web框架
2017/03/20 Python
python爬虫之遍历单个域名
2019/11/20 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
Notino瑞典:购买香水和美容产品
2019/07/26 全球购物
酒店管理专业自荐信
2014/05/23 职场文书
人代会标语
2014/06/30 职场文书
户籍证明格式
2014/09/15 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
预备党员党支部意见
2015/06/02 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
厉行节约工作总结
2015/08/12 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
Nginx 常用配置
2022/05/15 Servers