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 相关文章推荐
JavaScript静态的动态
Sep 18 Javascript
Jquery 表单取值赋值的一些基本操作
Oct 11 Javascript
JQuery下关于$.Ready()的分析
Dec 13 Javascript
页面调用单个swf文件,嵌套出多个方法。
Nov 21 Javascript
基于jQuery实现网页进度显示插件
Mar 04 Javascript
JavaScript中诡异的delete操作符
Mar 12 Javascript
Angularjs 实现移动端在线测评效果(推荐)
Apr 05 Javascript
echarts设置图例颜色和地图底色的方法实例
Aug 01 Javascript
如何用Node写页面爬虫的工具集
Oct 26 Javascript
vue组件通信传值操作示例
Jan 08 Javascript
移动端手指操控左右滑动的菜单
Sep 08 Javascript
公众号SVG动画交互实战代码
May 31 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
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
PHP个人网站架设连环讲(三)
2006/10/09 PHP
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
青年教师典范事迹材料
2014/01/31 职场文书
《将心比心》教学反思
2014/04/08 职场文书
交通事故协议书范文
2014/04/16 职场文书
团员自我评价范文
2015/03/10 职场文书
2015年暑假工作总结
2015/07/13 职场文书
母亲节感言
2015/08/03 职场文书
运动会广播稿20字
2015/08/19 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android