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 相关文章推荐
MooTools 1.2中的Drag.Move来实现拖放
Sep 15 Javascript
js 数组实现一个类似ruby的迭代器
Oct 27 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
Jan 09 Javascript
JS中的public和private对象,即static修饰符
Jan 18 Javascript
js arguments对象应用介绍
Nov 28 Javascript
Javascript无参数和有参数类继承问题解决方法
Mar 02 Javascript
基于jquery实现复选框全选,反选,全不选等功能
Oct 16 Javascript
每天一篇javascript学习小结(String对象)
Nov 18 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
May 19 Javascript
echarts学习笔记之图表自适应问题详解
Nov 22 Javascript
vue 实现的树形菜的实例代码
Mar 19 Javascript
开发中常用的25个JavaScript单行代码(小结)
Jun 28 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浏览历史记录的方法
2015/03/10 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
JS判断文本框内容改变事件的简单实例
2014/03/07 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
js实现打字小游戏
2019/12/17 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[36:54]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Python函数装饰器实现方法详解
2018/12/22 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
2020/03/02 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
应届生求职推荐信
2013/10/28 职场文书
2014年销售助理工作总结
2014/12/01 职场文书