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 相关文章推荐
Prototype String对象 学习
Jul 19 Javascript
JS中处理与当前时间间隔的函数代码
May 23 Javascript
javascript:history.go()和History.back()的区别及应用
Nov 25 Javascript
jQuery实现可拖动的浮动层完整代码
May 27 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
Apr 12 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
Apr 29 Javascript
JavaScript设计模式之适配器模式介绍
Dec 28 Javascript
jQuery通用的全局遍历方法$.each()用法实例
Jul 04 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
May 12 Javascript
微信小程序页面滑动屏幕加载数据效果
Nov 16 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
Sep 11 Javascript
layui实现下拉框三级联动
Jul 26 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新手上路(三)
2006/10/09 PHP
php 输出双引号&quot;与单引号'的方法
2010/05/09 PHP
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
网站404页面3秒后跳到首页的实例代码
2013/08/16 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
详解如何在vue-cli中使用vuex
2018/08/07 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
Python实现网站注册验证码生成类
2017/06/08 Python
python scatter函数用法实例详解
2020/02/11 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
什么是Python包的循环导入
2020/09/08 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
综合测评自我鉴定
2013/10/08 职场文书
党的群众路线教育实践活动个人承诺书
2014/05/22 职场文书
2014年入党积极分子学习三中全会思想汇报
2014/09/13 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
深入理解python协程
2021/06/15 Python
Pandas数据类型之category的用法
2021/06/28 Python
Golang 结构体数据集合
2022/04/22 Golang