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  Error 对象 错误处理
May 18 Javascript
javascript dom代码应用 简单的相册[firefox only]
Jun 12 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
Aug 12 Javascript
javascript数组遍历for与for in区别详解
Dec 04 Javascript
javascript学习总结之js使用技巧
Sep 02 Javascript
Angular.js回顾ng-app和ng-model使用技巧
Apr 26 Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 Javascript
详解升级react-router 4 踩坑指南
Aug 14 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
Feb 14 Javascript
Vue项目引进ElementUI组件的方法
Nov 11 Javascript
ES6 Generator函数的应用实例分析
Jun 26 Javascript
JS实现TITLE悬停长久显示效果完整示例
Feb 11 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 4.2书写安全的脚本
2006/10/09 PHP
php设计模式 Factory(工厂模式)
2011/06/26 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
关于php开启错误提示的总结
2019/09/24 PHP
javascript里的条件判断
2007/02/27 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
JavaScript中把数字转换为字符串的程序代码
2013/06/19 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
Jquery简单分页实现方法
2015/07/24 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
原生js实现倒计时功能(多种格式调用)
2017/01/12 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
Python抓取电影天堂电影信息的代码
2016/04/07 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
Python两个字典键同值相加的几种方法
2019/03/05 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
精通CAD能手自荐书
2014/01/31 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
学校欢迎标语
2014/06/18 职场文书
最美护士演讲稿
2014/08/27 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
庆祝教师节主持词
2015/07/06 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL