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 相关文章推荐
jQuery 学习 几种常用方法
Jun 11 Javascript
关于html+ashx开发中几个问题的解决方法
Jul 18 Javascript
前台js改变Session的值(用ajax实现)
Dec 28 Javascript
JQuery设置时间段下拉选择实例
Dec 30 Javascript
JS解析XML文件和XML字符串详解
Apr 17 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
Aug 02 Javascript
Angular 2.x学习教程之结构指令详解
May 25 Javascript
基于 webpack2 实现的多入口项目脚手架详解
Jun 26 Javascript
Javascript 严格模式use strict详解
Sep 16 Javascript
js实现数组和对象的深浅拷贝
Sep 30 Javascript
javascript中神奇的 Date对象小结
Oct 12 Javascript
vue前端工程的搭建
Mar 31 Vue.js
前端 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
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
php 使用array函数实现分页
2015/02/13 PHP
PHP使用socket发送HTTP请求的方法
2016/02/14 PHP
thinkphp分页实现效果
2016/10/13 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
jquery 表格的增行删行实现思路
2013/03/21 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
Javascript的&&和||的另类用法
2014/07/23 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
AngularJS表单基本操作
2017/01/09 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
vue实现搜索功能
2019/05/28 Javascript
python 切片和range()用法说明
2013/03/24 Python
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
实例解析Python中的__new__特殊方法
2016/06/02 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
golang语言指针操作
2022/04/14 Golang
Java完整实现记事本代码
2022/06/16 Java/Android