js cookies存取删操作实例
- //写cookies函数
- 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'));
以下是一个非常实用的 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>
Cookie的兼容性问题
Cookie的格式有2个不同的版本,第一个版本,我们称为Cookie Version 0,是最初由Netscape公司制定的,也被几乎所有的浏览器支持。而较新的版本,Cookie Version 1,则是根据RFC 2109文档制定的。为了确保兼容性,JAVA规定,前面所提到的涉及Cookie的操作都是针对旧版本的Cookie进行的。而新版本的Cookie目前还不被Javax.servlet.http.Cookie包所支持。
Cookie的内容
同样的Cookie的内容的字符限制针对不同的Cookie版本也有不同。在Cookie Version 0中,某些特殊的字符,例如:空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,@符号,冒号,分号都不能作为Cookie的内容。这也就是为什么我们在例子中设定Cookie的内容为"Test_Content"的原因。
虽然在Cookie Version 1规定中放宽了限制,可以使用这些字符,但是考虑到新版本的Cookie规范目前仍然没有为所有的浏览器所支持,因而为保险起见,我们应该在Cookie的内容中尽量避免使用这些字符。
js cookies存取删操作实例的更多相关文章
- node.js下mongoose简单操作实例
Mongoose API : http://mongoosejs.com/docs/api.html // mongoose 链接var mongoose = require('mongoose'); ...
- [转] node.js下mongoose简单操作实例
Mongoose API : http://mongoosejs.com/docs/api.html // mongoose 链接 var mongoose = require('mongoose') ...
- js 属性增改删操作
js 属性增改删操作,可参看菜鸟教程,这里记录一个小问题:disabled属性 使用setAttribute操作无法 禁用disabled属性,需使用removeAttribute操作,原因是只要有d ...
- js的dom测试及实例代码
js的dom测试及实例代码 一.总结 一句话总结: 1.需要记得 创建 标签和创建文本节点都是document的活:document.createTextNode("Rockets的姚明&q ...
- js基础总结01 --操作DOM
1.选择对象 通过id来选择绑定一个dom节点 :document.getElementById('p1'): 通过类名来绑定一个类数组的对象集合,:document.getElementsByCla ...
- Python 文件读写操作实例详解
Python提供了必要的函数和方法进行默认情况下的文件基本操作.你可以用file对象做大部分的文件操作 一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前 ...
- 在js中将map对象转换成json 和 js对cookie的操作
在js中将map对象转换成json //msp转objectlet obj= Object.create(null); for (let[k,v] of map) { obj[k] = v; }//o ...
- CentOS 配置防火墙操作实例(启、停、开、闭端口):
CentOS 配置防火墙操作实例(启.停.开.闭端口): 注:防火墙的基本操作命令: 查询防火墙状态: [root@localhost ~]# service iptables status< ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
随机推荐
- 对获取config文件的appSettings节点简单封装
转:http://www.cnblogs.com/marvin/archive/2011/07/29/EfficiencyAppSetting.html C#的开发中,无论你是winform开发还是w ...
- URL & webkitURL
base64带来的坑 在web中想要是实现图片在线预览的方式有几种 1.先上传 2.使用FileReader对象 3.URL.createObjectURL(file|blob) base64 能将图 ...
- linux下C++对线程的封装
之前一直是使用C语言,前段时间转做C++.无论使用什么语言,多线程编程都是不可或缺的.最近项目中又用到了线程,现在将线程的封装做出总结: 1.线程类中应该包含线程ID.线程的状态以及线程基本操作等. ...
- JSP中Filter中访问Spring管理的beans
@Override public void init(FilterConfig filterConfig) { //unchecked = filterConfig.getInitParameter ...
- 用纯CSS3绘制萌系漫画人物动态头像
大家已经见惯了用CSS3画的图标.LOGO.头像,这次台湾同学Rei给我们带来了用纯CSS3绘制的日本动漫<轻音少女>女主角秋山澪的动态头像.看到动图我震惊了!!!CSS3的强大再次霸气测 ...
- AngularJS路由和模板
前言 如果想开发一款类似gmail的web应用,我们怎么做呢? 以jQuery的思路,做响应式的架构设计时,我们要监听所有点击事件,通过事件函数触发我们加载数据,提交,弹框,验证等的功能:以 Angu ...
- 【python】中文的输出,打印,文件编码问题解决方法
直接在python中输入中文的字符串会报编译错误SyntaxError: Non-ASCII character,因为python文件默认编码方式是ASCII.如果想要打印中文字符,有两种方式: 1. ...
- 一个简单的倒计时js插件
接收的参数end是必须传的,格式是/分隔的日期字符串,start是可选的,不传就是从现在开始倒计时,callback也是可选的,到倒计时接收时执行自定义的函数. countdown({ 'end':' ...
- QtWaitingSpinner
https://github.com/snowwlex/QtWaitingSpinner
- linux grep练习
1.显示/proc/meminfo文件中以不区分大小的s开头的行: 2.显示/etc/passwd中以nologin结尾的行; 3.显示/etc/inittab中以#开头,且后面跟一个或多个空白字符, ...