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中判断一个元素是否为另一个元素的子元素(或者其本身)
Mar 21 Javascript
通过jQuery源码学习javascript(二)
Dec 27 Javascript
各种页面定时跳转(倒计时跳转)代码总结
Oct 24 Javascript
JS OffsetParent属性深入解析
Jan 13 Javascript
jQuery html()方法使用不了无法显示内容的问题
Aug 06 Javascript
使用three.js 画渐变的直线
Jun 05 Javascript
JavaScript闭包_动力节点Java学院整理
Jun 27 Javascript
利用vue开发一个所谓的数独方法实例
Dec 21 Javascript
vue+element-ui+ajax实现一个表格的实例
Mar 09 Javascript
微信小程序配置服务器提示验证token失败的解决方法
Apr 03 Javascript
JavaScript实现HSL拾色器
May 21 Javascript
react实现复选框全选和反选组件效果
Aug 25 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
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
提取字符串中年月日的函数代码
2013/11/05 Javascript
js 操作符汇总
2014/11/08 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
JavaScript中exec函数用法实例分析
2015/06/08 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
jquery实现点击弹出对话框
2020/02/08 jQuery
vue实现整屏滚动切换
2020/06/29 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
Python常见字典内建函数用法示例
2018/05/14 Python
实例讲解Python爬取网页数据
2018/07/08 Python
对Pyhon实现静态变量全局变量的方法详解
2019/01/11 Python
纯python进行矩阵的相乘运算的方法示例
2019/07/17 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
python自动生成model文件过程详解
2019/11/02 Python
python 一维二维插值实例
2020/04/22 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
纯CSS3单页切换导航菜单界面设计的简单实现
2016/08/16 HTML / CSS
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
怎样声明接口
2014/09/19 面试题
领导失职检讨书
2014/02/24 职场文书
扩大国家免疫规划实施方案
2014/03/21 职场文书
2014年师德师风自我剖析材料
2014/09/27 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
民事纠纷协议书
2016/03/23 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript