1. //写cookies函数
  2. function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值
  3. {
  4. var Days = 30; //此 cookie 将被保存 30 天
  5. var exp = new Date(); //new Date("December 31, 9998");
  6. exp.setTime(exp.getTime() + Days*24*60*60*1000);
  7. document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
  8. }
  9. function getCookie(name)//取cookies函数
  10. {
  11. var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
  12. if(arr != null) return unescape(arr[2]); return null;
  13. }
  14. function delCookie(name)//删除cookie
  15. {
  16. var exp = new Date();
  17. exp.setTime(exp.getTime() - 1);
  18. var cval=getCookie(name);
  19. if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
  20. }
  21. SetCookie ("xiaoqi", "3")
  22. alert(getCookie('xiaoqi'));

以下是一个非常实用的 javascript 读写 Cookie 函数

  1. function GetCookieVal(offset)
  2. //获得Cookie解码后的值
  3. {
  4. var endstr = documents.cookie.indexOf (";", offset);
  5. if (endstr == -1)
  6. endstr = documents.cookie.length;
  7. return unescape(documents.cookie.substring(offset, endstr));
  8. }
  9. function SetCookie(name, value)
  10. //设定Cookie值
  11. {
  12. var expdate = new Date();
  13. var argv = SetCookie.arguments;
  14. var argc = SetCookie.arguments.length;
  15. var expires = (argc > 2) ? argv[2] : null;
  16. var path = (argc > 3) ? argv[3] : null;
  17. var domain = (argc > 4) ? argv[4] : null;
  18. var secure = (argc > 5) ? argv[5] : false;
  19. if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ));
  20. documents.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expdate.toGMTString()))
  21. +((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
  22. +((secure == true) ? "; secure" : "");
  23. }
  24. function DelCookie(name)
  25. //删除Cookie
  26. {
  27. var exp = new Date();
  28. exp.setTime (exp.getTime() - 1);
  29. var cval = GetCookie (name);
  30. documents.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
  31. }
  32. function GetCookie(name)
  33. //获得Cookie的原始值
  34. {
  35. var arg = name + "=";
  36. var alen = arg.length;
  37. var clen = documents.cookie.length;
  38. var i = 0;
  39. while (i < clen)
  40. {
  41. var j = i + alen;
  42. if (documents.cookie.substring(i, j) == arg)
  43. return GetCookieVal (j);
  44. i = documents.cookie.indexOf(" ", i) + 1;
  45. if (i == 0) break;
  46. }
  47. return null;
  48. }
  1. <SCRIPT language="javascript">
  2. <!--
  3. function openpopup()
  4. {
  5. url="popup.htm"
  6. window.open("gonggao.htm","gonggao","width=260,height=212,left=200,top=0")
  7. }
  8. function get_cookie(Name)
  9. {
  10. var search = Name + "="
  11. var returnvalue = "";
  12. if (documents.cookie.length > 0)
  13. {
  14. offset = documents.cookie.indexOf(search)
  15. if (offset != -1)
  16. {
  17. offset += search.length
  18. end = documents.cookie.indexOf(";", offset);
  19. if (end == -1)
  20. end = documents.cookie.length;
  21. returnvalue=unescape(documents.cookie.substring(offset, end))
  22. }
  23. }
  24. return returnvalue;
  25. }
  26. function helpor_net()
  27. {
  28. if (get_cookie('popped')=='')
  29. {
  30. openpopup()
  31. documents.cookie="popped=yes"
  32. }
  33. }
  34. helpor_net()
  35. //-->
  36. </SCRIPT>

如果点了确定,只要不清cookie,以后访问都不会再提示,如果不点确定则每次都会提示。放在js文件里,全站包含。

  1. <SCRIPT LANGUAGE="JavaScript">
  2. <!--
  3. var the_cookie = document.cookie;
  4. var broken_cookie = the_cookie.split(":");
  5. var the_visiteraccepted = unescape(broken_cookie[1]);
  6. //
  7. if (the_visiteraccepted=="undefined")
  8. {
  9. var tmp=confirm('中国人何时何地。');
  10. if(tmp==false)
  11. {
  12. window.close();
  13. }
  14. else
  15. {
  16. var the_visiteraccepted = 1;
  17. var the_cookie = "ILoveChina=visiteraccepted:" + escape(the_visiteraccepted);
  18. document.cookie = the_cookie;
  19. }
  20. }
  21. //-->
  22. </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存取删操作实例的更多相关文章

  1. node.js下mongoose简单操作实例

    Mongoose API : http://mongoosejs.com/docs/api.html // mongoose 链接var mongoose = require('mongoose'); ...

  2. [转] node.js下mongoose简单操作实例

    Mongoose API : http://mongoosejs.com/docs/api.html // mongoose 链接 var mongoose = require('mongoose') ...

  3. js 属性增改删操作

    js 属性增改删操作,可参看菜鸟教程,这里记录一个小问题:disabled属性 使用setAttribute操作无法 禁用disabled属性,需使用removeAttribute操作,原因是只要有d ...

  4. js的dom测试及实例代码

    js的dom测试及实例代码 一.总结 一句话总结: 1.需要记得 创建 标签和创建文本节点都是document的活:document.createTextNode("Rockets的姚明&q ...

  5. js基础总结01 --操作DOM

    1.选择对象 通过id来选择绑定一个dom节点 :document.getElementById('p1'): 通过类名来绑定一个类数组的对象集合,:document.getElementsByCla ...

  6. Python 文件读写操作实例详解

    Python提供了必要的函数和方法进行默认情况下的文件基本操作.你可以用file对象做大部分的文件操作 一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前 ...

  7. 在js中将map对象转换成json 和 js对cookie的操作

    在js中将map对象转换成json //msp转objectlet obj= Object.create(null); for (let[k,v] of map) { obj[k] = v; }//o ...

  8. CentOS 配置防火墙操作实例(启、停、开、闭端口):

    CentOS 配置防火墙操作实例(启.停.开.闭端口): 注:防火墙的基本操作命令: 查询防火墙状态: [root@localhost ~]# service   iptables status< ...

  9. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

随机推荐

  1. 对获取config文件的appSettings节点简单封装

    转:http://www.cnblogs.com/marvin/archive/2011/07/29/EfficiencyAppSetting.html C#的开发中,无论你是winform开发还是w ...

  2. URL & webkitURL

    base64带来的坑 在web中想要是实现图片在线预览的方式有几种 1.先上传 2.使用FileReader对象 3.URL.createObjectURL(file|blob) base64 能将图 ...

  3. linux下C++对线程的封装

    之前一直是使用C语言,前段时间转做C++.无论使用什么语言,多线程编程都是不可或缺的.最近项目中又用到了线程,现在将线程的封装做出总结: 1.线程类中应该包含线程ID.线程的状态以及线程基本操作等. ...

  4. JSP中Filter中访问Spring管理的beans

    @Override public void init(FilterConfig filterConfig) {  //unchecked = filterConfig.getInitParameter ...

  5. 用纯CSS3绘制萌系漫画人物动态头像

    大家已经见惯了用CSS3画的图标.LOGO.头像,这次台湾同学Rei给我们带来了用纯CSS3绘制的日本动漫<轻音少女>女主角秋山澪的动态头像.看到动图我震惊了!!!CSS3的强大再次霸气测 ...

  6. AngularJS路由和模板

    前言 如果想开发一款类似gmail的web应用,我们怎么做呢? 以jQuery的思路,做响应式的架构设计时,我们要监听所有点击事件,通过事件函数触发我们加载数据,提交,弹框,验证等的功能:以 Angu ...

  7. 【python】中文的输出,打印,文件编码问题解决方法

    直接在python中输入中文的字符串会报编译错误SyntaxError: Non-ASCII character,因为python文件默认编码方式是ASCII.如果想要打印中文字符,有两种方式: 1. ...

  8. 一个简单的倒计时js插件

    接收的参数end是必须传的,格式是/分隔的日期字符串,start是可选的,不传就是从现在开始倒计时,callback也是可选的,到倒计时接收时执行自定义的函数. countdown({ 'end':' ...

  9. QtWaitingSpinner

    https://github.com/snowwlex/QtWaitingSpinner

  10. linux grep练习

    1.显示/proc/meminfo文件中以不区分大小的s开头的行: 2.显示/etc/passwd中以nologin结尾的行; 3.显示/etc/inittab中以#开头,且后面跟一个或多个空白字符, ...