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 相关文章推荐
jQuery 点击图片跳转上一张或下一张功能的实现代码
Mar 12 Javascript
Jquery公告滚动+AJAX后台得到数据
Apr 14 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
Feb 04 Javascript
密码框显示提示文字jquery示例
Aug 29 Javascript
jquery事件与函数的使用介绍
Sep 29 Javascript
Bootstrap按钮下拉菜单组件详解
May 10 Javascript
javascript 日期相减-在线教程(附代码)
Aug 17 Javascript
vue实现动态列表点击各行换色的方法
Sep 13 Javascript
解决layui的radio属性或别的属性没显示出来的问题
Sep 26 Javascript
vue中对象数组去重的实现
Feb 06 Javascript
JavaScript 防盗链的原理以及破解方法
Dec 29 Javascript
JavaScript函数柯里化
Nov 07 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 cookie的操作实现代码(登录)
2010/12/29 PHP
php读取csc文件并输出
2015/05/21 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
2013/10/23 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
2019/06/20 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
基于Django用户认证系统详解
2018/02/21 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
实例讲解python中的协程
2018/10/08 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
python如何调用java类
2020/07/05 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
Html5页面中的返回实现的方法
2018/02/26 HTML / CSS
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
什么是抽象
2015/12/13 面试题
机电工程专业应届生求职信
2013/10/03 职场文书
求职推荐信范文
2013/12/01 职场文书
党建工作先进材料
2014/05/02 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android
用Python可视化新冠疫情数据
2022/01/18 Python
浅谈如何保证Mysql主从一致
2022/03/13 MySQL
vue里使用create, mounted调用方法
2022/04/26 Vue.js
MySQL事务的隔离级别详情
2022/07/15 MySQL