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 相关文章推荐
接收键盘指令的脚本
Jun 26 Javascript
不用写JS也能使用EXTJS视频演示
Dec 29 Javascript
JavaScript 数组循环引起的思考
Jan 01 Javascript
jquery中prop()方法和attr()方法的区别浅析
Sep 06 Javascript
用原生js做个简单的滑动效果的回到顶部
Oct 15 Javascript
js中最容易被忽视的事件问题大总结
May 15 Javascript
BootStrap创建响应式导航条实例代码
May 31 Javascript
Vue.js进行查询操作的实例详解
Aug 25 Javascript
JavaScript实现图片拖曳效果
Sep 08 Javascript
关于TypeScript模块导入的那些事
Jun 12 Javascript
BootStrap modal实现拖拽功能
Dec 01 Javascript
VSCode插件安装完成后的配置(常用配置)
Aug 24 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 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
2006/10/09 PHP
最新的php 文件上传模型,支持多文件上传
2009/08/13 PHP
php MessagePack介绍
2013/10/06 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
php实现三级级联下拉框
2016/04/17 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
python中的五种异常处理机制介绍
2014/09/02 Python
Python中的元类编程入门指引
2015/04/15 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
python实现FTP服务器服务的方法
2017/04/11 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
Python字典底层实现原理详解
2019/12/18 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
python中JWT用户认证的实现
2020/05/18 Python
python3处理word文档实例分析
2020/12/01 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
html5读取本地文件示例代码
2014/04/22 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
餐饮业员工工作决心书
2014/03/11 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
小学优秀班主任材料
2014/12/17 职场文书