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 相关文章推荐
Jquery操作Select 简单方便 一个js插件搞定
Nov 12 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
Nov 30 Javascript
JS OffsetParent属性深入解析
Jan 13 Javascript
javascript检测是否联网的实现代码
Sep 28 Javascript
jQuery基于muipicker实现仿ios时间选择
Feb 22 Javascript
JS取模、取商及取整运算方法示例
Oct 13 Javascript
详解Vuex管理登录状态
Nov 13 Javascript
js中的reduce()函数讲解
Jan 18 Javascript
基于Vue 实现一个中规中矩loading组件
Apr 03 Javascript
基于layPage插件实现两种分页方式浅析
Jul 27 Javascript
Vue中nprogress页面加载进度条的方法实现
Nov 13 Javascript
类和原型的设计模式之复制与委托差异
Jul 07 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
十大“创意”战术!
2020/03/04 星际争霸
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
php微信开发之关注事件
2018/06/14 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
xtemplate node.js 的使用方法实例解析
2016/08/22 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
Win10下Python环境搭建与配置教程
2016/11/18 Python
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
python实现K最近邻算法
2018/01/29 Python
Django实现表单验证
2018/09/08 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
Python3中的bytes和str类型详解
2019/05/02 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
七年级音乐教学反思
2014/01/26 职场文书
司法建议书范文
2014/05/13 职场文书
论文致谢词范文
2015/05/14 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
使用Canvas绘制一个游戏人物属性图
2022/03/25 Javascript
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang