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 相关文章推荐
JS继承 笔记
Jul 13 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
Nov 20 Javascript
jQuery制作简单柱状图实例
Jan 28 Javascript
jQuery实现仿百度帖吧头部固定导航效果
Aug 07 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
Feb 12 Javascript
JS实现支持Ajax验证的表单插件
Mar 24 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
Jul 05 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
Jan 05 Javascript
angularJs在多个控制器中共享服务数据的方法
Sep 30 Javascript
vue父组件给子组件的组件传值provide inject的方法
Oct 23 Javascript
Javascript Worker子线程代码实例
Feb 20 Javascript
js制作提示框插件
Dec 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
Extended CHM PHP 语法手册之 DIY
2006/10/09 PHP
smarty中常用方法实例总结
2015/08/07 PHP
基于php编程规范(详解)
2017/08/17 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
DOM相关内容速查手册
2007/02/07 Javascript
Add a Table to a Word Document
2007/06/15 Javascript
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
js封装可使用的构造函数继承用法分析
2015/01/28 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
Python实现模拟登录及表单提交的方法
2015/07/25 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
python实现textrank关键词提取
2018/06/22 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
大学生实习自我鉴定
2013/12/11 职场文书
专业求职信撰写要诀
2014/02/18 职场文书
仓库规划计划书
2014/04/28 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
营销经理工作检讨书
2014/11/03 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
暑期实践个人总结
2015/03/06 职场文书
Nginx HTTP跳转至HTTPS
2022/05/15 Servers
windows系统安装配置nginx环境
2022/06/28 Servers