Javascript 对cookie操作详解及实例


Posted in Javascript onDecember 29, 2016

js 操作 cookie 的方法

cookie

cookie,有时候也用其复数形式Cookies,指某些网站为了辨别用户身份,进行session跟踪而储存在用户本地终端上的数据(经常通过加密)。定义于RFC2109和2965都已废弃,最新取代的规范是RFC6265。

cookie的作用

服务器可以利用Cookie包含信息的任意性来筛选经常性维护这些信息,以判断在HTTP传输中的状态。Cookie最典型的英语是判断注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录步骤,浙西都是Cookie的功能。另一个重要张合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookie,以便在最后付款时提取信息。

js设置cookie

document.cookie="key=value";
//例
document.cookie="name=weiqi";

//可以在控制台中打印出cookie
console.log(document.cookie);

如何修改和获取cookie

js中并没有提供获取cookie的方法,所以只能自己封装方法,相同的key的cookie只能存在一个,如果定义了一个document.cookie="age=21",后面又定义了document.cookie="age=30",那么后面定义的cookie会覆盖前面定义的cookie,所以修改cookie值的时候只用重新定义个key相同的cookie就可以了。那么获取cookie的时候也只用在cookie中获取到这个key后面的“=”和“;”直接的字符串,那就是这个cookie的值了,获取的方法又很多种,这里我写一种比较简单的:

function getCookie(key){
  var index = document.cookie.indexOf(key);
  var returnValue;
  if(index!==-1){
    var tIndex = document.cookie.indexOf(";",index);
    var target = document.cookie.substring(index,tIndex);
    var returnValue = decodeURIComponent(target.replace(key+"=",""))
  }
  return returnValue;
}

document.cookie="name=weiqi";
getCookie("name"); //weiqi

删除cookie

cookie是有有效期的,前面我们设置cookie的时候都没有设置有效期,如果我们将cookie的有效期设置成一个已经过去的时间,那么它就无效了,下面来实现一下:

function delCookie(key){
  var d = new Date();
  document.cookie=key+"=;expires="+ d.toGMTString();
}

document.cookie="name=weiqi";
delCookie("name"); //undefined

给cookie设置一个有效期

通过expires给cookie设置一个有效期,现在我们设置一个cookie的有效期是10天,如下:

var d = new Date();
var time = 10;
d.setTime(d.getTime()+time*1000*60*60*24);
document.cookie="name=weiqi;expires="+ d.toGMTString();

封装cookie

将自定义的一些方法完善一下封装成一个对象,这样在使用的时候就可以直接拿来用了:

//封装cookie方法的对象
var cookie = {
  setCookie:function(key,value,time){
    if(key == undefined){
      return;
    }
    if(time!== undefined){
      var d = new Date();
      d.setTime(d.getTime()+time*1000*60*60*24);
      document.cookie=key+"="+value+";expires="+ d.toGMTString();
    }else{
      document.cookie=key+"="+value;
    }
  },
  getCookie:function(key){
    var index = document.cookie.indexOf(key);
    var returnValue;
    if(index!==-1){
      var tIndex = document.cookie.indexOf(";",index);
      var target = document.cookie.substring(index,tIndex);
      var returnValue = decodeURIComponent(target.replace(key+"=",""))
     }
    return returnValue;
  },
  delCookie:function(key){
    var d = new Date();
    document.cookie=key+"=;expires="+ d.toGMTString();
  }
}


//测试
cookie.setCookie("home")
cookie.setCookie("name","卫旗");
cookie.setCookie("age",22);
cookie.setCookie("sex","男")
cookie.getCookie("sex")
cookie.delCookie("age")

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
给moz-firefox下添加IE方法和属性
Apr 10 Javascript
Javascript 中的类和闭包
Jan 08 Javascript
JS的反射问题
Apr 07 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
Oct 17 Javascript
原生JS实现响应式瀑布流布局
Apr 02 Javascript
深入学习JavaScript中的原型prototype
Aug 13 Javascript
jquery实现表单验证简单实例演示
Nov 23 Javascript
JS实现图片上传预览功能
Nov 21 Javascript
利用Node.js编写跨平台的spawn语句详解
Feb 12 Javascript
jquery实现静态搜索功能(可输入搜索文字)
Mar 28 jQuery
JS使用数组实现的队列功能示例
Mar 04 Javascript
ES6 Array常用扩展的应用实例分析
Jun 26 Javascript
前端 Vue.js 和 MVVM 详细介绍
Dec 29 #Javascript
javascript显示系统当前时间代码
Dec 29 #Javascript
解析JavaScript模仿块级作用域
Dec 29 #Javascript
JavaScript仿支付宝6位数字密码输入框
Dec 29 #Javascript
vue实现列表的添加点击
Dec 29 #Javascript
详解javascript表单的Ajax提交插件的使用
Dec 29 #Javascript
基于javascript的Form表单验证
Dec 29 #Javascript
You might like
Windows下的PHP5.0详解
2006/11/18 PHP
PHP 开源框架22个简单简介
2009/08/24 PHP
php操作JSON格式数据的实现代码
2011/12/24 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
Python之Web框架Django项目搭建全过程
2017/05/02 Python
Python实现自动为照片添加日期并分类的方法
2017/09/30 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
全网首秀之Pycharm十大实用技巧(推荐)
2020/04/27 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
五年级语文教学反思
2014/01/30 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
幼儿发展评估方案
2014/06/11 职场文书
新手上路标语
2014/06/20 职场文书
幼儿学前班评语
2014/12/29 职场文书
节约用电通知
2015/04/25 职场文书
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL