javascript 中Cookie读、写与删除操作


Posted in Javascript onMarch 29, 2017

 javascript 中Cookie读、写与删除操作

前言:

在这个前端横行的时候,页面之间的交互需要数据的传递,有的数据通过url传参的形式可以很好地解决,但是对于部分需要改变的参数,你如说从页面A到页面B选择数据,然后从页面B将数据再传到页面A(典型的栗子就是收货地址的选择),针对这一块我是通过存储cookie来解决的。

对于cookie的操作我给出了一些简单的封装,当然也借鉴了前辈们经验,自己糅合了一下,对于cookie的操作,无非是读写和删除,我们首先来看一下写的操作,有写才有读,进而进行删除等操作。

/**
 * 设置COOKIE
 * @param name 设置cookie的属性名
 * @param value 设置cookie的属性值
 * @param time  设置cookie的时间
 */

function setCookie(name, value , time) {
  time = time ? parseFloat(time) : 0 ;
  var exp = new Date();
  exp.setTime(exp.getTime() + time);
  // escape 这种编码方式过时了 改用 encodeURIComponent
  // document.cookie = name + "=" + escape(value) + ";expires=" + (time ? exp.toGMTString() : 'session');
  document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + (time ? exp.toGMTString() : 'session');
}

我们有了写的操作了,那么我们再来看看对于读的操作。

/**
 * 获取cookie
 * @param name
 * @returns {null}
 */

function getCookie(name) {
  var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  if (arr = document.cookie.match(reg))
    //unescape这种解码方式好像过时了,可以采用decodeURIComponent解码方式
    //return unescape(arr[2]);
     return decodeURIComponent(arr[2]);
  else
    return null;
}

接下就是对cookie的删除操作了,其实这个操作很简单,就是将cookie设置过期,cookie就自动失效了

/**
 * 删除cookie
 * @param name
 */

function delCookie(name) {
  var exp = new Date();
  exp.setTime(exp.getTime() - 1);
  var cval = getCookie(name);
  if (cval != null)
    document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}

以上就是对cookie的一些简单操作

接下来我们来谈一点cookie的深层次的问题:cookie的跨域

Js跨域同步cookie怎么实现
    document.cookie = "name=" + "value;" + "expires=" + "datatime;" + "domain=" + "" + "path=" + "/path" + "; secure";

/**
 * 删除cookie
 * value Cookie值
 * expires 有效期截至(单位毫秒)
 * path 子目录
 * domain 有效域
 * secure 是否安全
 */

<iframe src='http://网站:1234/test/Index' width='100' height='100' style="display:none"></iframe>

/*
*原页面js里 window.location = "http://另外一个网站:1234/GetCookie/Index?" + document.cookie;跳到另外一个站,另外一个站获取cookie,设置cookie
*/

 var url = window.location.toString();//获取地址
 var get = url.substring(url.indexOf("liuph"));//获取变量和变量值
 var idx = get.indexOf("=");//获取变量名长度
 if (idx != -1) {
    var name = get.substring(0, idx);//获取变量名
    var val = get.substring(idx + 1);//获取变量值
    setCookie(name, val, 1);//创建Cookie
  }

以上就是今天对cookie的解读。

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

Javascript 相关文章推荐
javaScript对象和属性的创建方法
Jan 15 Javascript
JavaScript保留关键字汇总
Dec 01 Javascript
JavaScript获取客户端IP的方法(新方法)
Mar 11 Javascript
canvas学习之API整理笔记(二)
Dec 29 Javascript
JavaScript Uploadify文件上传实例
Feb 28 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
May 20 jQuery
JavaScript原型继承_动力节点Java学院整理
Jun 30 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
Aug 10 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
Jun 03 Javascript
angular中的post请求处理示例详解
Jun 30 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
React自定义hook的方法
Jun 25 Javascript
移动端利用H5实现压缩图片上传功能
Mar 29 #Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
Mar 29 #Javascript
Vue.js展示AJAX数据简单示例讲解
Mar 29 #Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
Mar 29 #Javascript
Mongoose经常返回e11000 error的原因分析
Mar 29 #Javascript
js实现一个简单的数字时钟效果
Mar 29 #Javascript
jquery实现tab键进行选择后enter键触发click行为
Mar 29 #jQuery
You might like
纯php打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
jquery 页面全选框实践代码
2010/04/02 Javascript
Javascript中的变量使用说明
2010/05/18 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
JavaScript更改原始对象valueOf的方法
2015/03/19 Javascript
利用JS实现数字增长
2016/07/28 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
python文件的md5加密方法
2016/04/06 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
Python获取时间戳代码实例
2019/09/24 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
Django model class Meta原理解析
2020/11/14 Python
python中_del_还原数据的方法
2020/12/09 Python
收藏!10个免费高清视频素材网站!【设计、视频剪辑必备】
2021/03/18 杂记
前台接待员岗位职责
2014/01/02 职场文书
社区居务公开实施方案
2014/03/27 职场文书
骨干教师培训方案
2014/05/06 职场文书
工程负责人任命书
2014/06/06 职场文书
县委常委班子对照检查材料思想汇报
2014/09/28 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
早安问候语大全
2015/11/10 职场文书
无线电知识基础入门篇
2022/02/18 无线电
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP