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 相关文章推荐
PJBlog插件 防刷新的在线播放器
Oct 25 Javascript
jQuery实战之仿淘宝商城左侧导航效果
Apr 12 Javascript
jQuery 无限级菜单的简单实例
Feb 21 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
Mar 25 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
Feb 19 Javascript
JS实现环形进度条(从0到100%)效果
Jul 05 Javascript
javascript显示系统当前时间代码
Dec 29 Javascript
JavaScript代码调试方法实例小结
Jan 05 Javascript
微信小程序停止其他视频播放当前视频的实例代码
Dec 25 Javascript
js表达式与运算符简单操作示例
Feb 15 Javascript
JS实现拖动模糊框特效
Aug 25 Javascript
javascript代码实现简易计算器
Jan 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
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
vue内置指令详解
2018/04/03 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
微信小程序input抖动问题的修复方法
2021/03/03 Javascript
Python greenlet实现原理和使用示例
2014/09/24 Python
python去掉空白行的多种实现代码
2018/03/19 Python
python适合人工智能的理由和优势
2019/06/28 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
python怎么删除缓存文件
2020/07/19 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
德国最大的设计师鞋网上商店:Budapester
2017/12/07 全球购物
大专毕业生自我鉴定
2013/11/21 职场文书
大学生饮食连锁店创业计划书
2014/01/17 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
促销活动总结
2014/04/28 职场文书
班组建设经验交流材料
2014/05/12 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
刑事申诉状范文
2015/05/20 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
Python装饰器的练习题
2021/11/23 Python
python数字图像处理:图像的绘制
2022/06/28 Python