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与vbscript数据共享
Jan 09 Javascript
JavaScript 异步调用框架 (Part 2 - 用例设计)
Aug 03 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
Oct 10 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
May 08 Javascript
js模糊查询实例分享
Dec 26 Javascript
JavaScript条件判断_动力节点Java学院整理
Jun 26 Javascript
将angular.js项目整合到.net mvc中的方法详解
Jun 29 Javascript
微信小程序三级联动地址选择器的实例代码
Jul 12 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
Nov 01 Javascript
vue之封装多个组件调用同一接口的案例
Aug 11 Javascript
element-ui中el-upload多文件一次性上传的实现
Dec 02 Javascript
JavaScript中document.activeELement焦点元素介绍
Nov 27 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
使用Xdebug调试和优化PHP程序之[1]
2007/04/17 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
jQuery最佳实践完整篇
2011/08/20 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
基于模板引擎Jade的应用(详解)
2017/12/12 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
举例讲解Python中的算数运算符的用法
2015/05/13 Python
Python中列表元素转为数字的方法分析
2016/06/14 Python
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
Python爬虫文件下载图文教程
2018/12/23 Python
详解Python的循环结构知识点
2019/05/20 Python
python编写计算器功能
2019/10/25 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
2020/01/08 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
网吧最新创业计划书范文
2014/03/27 职场文书
竞聘书格式及范文
2014/03/31 职场文书
幼儿教师求职信
2014/05/24 职场文书
排查整治工作方案
2014/06/09 职场文书
法学专业求职信
2014/07/15 职场文书
KTV员工管理制度
2015/08/06 职场文书
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫