javascript 中Cookie读、写与删除操作
前端之家收集整理的这篇文章主要介绍了
javascript 中Cookie读、写与删除操作,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_0@
javascript 中Cookie读、写与删除操作
@H_
5020@前言:
@H502_0@在这个前端横行的时候,
页面之间的交互需要数据的传递,有的数据通过url传参的形式可以很好地
解决,但是对于部分需要改变的参数,你如说从
页面A到
页面B选择数据,然后从
页面B将数据再传到
页面A(典型的栗子就是收货地址的选择),针对这一块我是通过存储cookie来
解决的。
@H_
502_0@对于cookie的操作我给出了一些简单的封装,当然也借鉴了前辈们经验,自己糅合了一下,对于cookie的操作,无非是读写和
删除,我们首先来看一下写的操作,有写才有读,进而进行
删除等操作。
<div class="jb51code">
<pre class="brush:js;">
/**
- 设置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');
}
@H_
502_0@我们有了写的操作了,那么我们再来看看对于读的操作。
获取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;
}
@H_
502_0@接下就是对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();
}
@H_
502_0@以上就是对cookie的一些简单操作
@H_
502_0@接下来我们来谈一点cookie的深层次的问题:cookie的跨域
<div class="jb51code">
<pre class="brush:js;">
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">
/
原页面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
}