cookie
cookie : 存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来向访问者电脑上存储数据
1.不同的浏览器存放的cookie位置不一样,也是不能通用的
2.cookie的存储是以域名形式进行区分的
3.cookie的数据可以设置名字的
4.一个域名下存放的cookie的个数是有限制的,不同的浏览器存放的个数不一样
5.每个cookie存放的内容大小也是有限制的,不同的浏览器存放大小不一样
1、访问cookie
要在服务器环境下
我们通过document.cookie来获取当前网站下的cookie的时候,得到的字符串形式的值,他包含了当前网站下所有的cookie。他会把所有的cookie通过一个分号+空格的形式串联起来
1.consol.log( document.cookie );
2.存储cookie
1.document.cookie = '数据名=值';
3.设置cookie过期时间
cookie默认是临时存储的,当浏览器关闭进程的时候自动销毁 ,如果我们想长时间存放一个cookie。需要在设置这个cookie的时候同时给他设置一个过期的时间
过期时间必须是一个日期对象转换成的字符串(时间戳.toGMTString())
document.cookie = ‘数据名=值; expires=过期时间’;
2.var oDate = new Date();
3.oDate.setDate( oDate.getDate() + 5);
5.oDate.toGMTString();//转换为日期字符串
6.document.cookie='age=20; expires='+oDate;
9./*-- document.cookie='sex=man\n你好'; */
10.//转码
11.var content= encodeURI('man\n你好');
12.document.cookie='sex='+content+';expires='+oDate;
要找到对应的数据值,可以使用多种方式,比如正则:案例1
4.cookie封装
设置cookie封装
- function setCookie(obj,time){
for(key in obj){
var d = new Date();
d.setDate( d.getDate()+time );
document.cookie = key+'='+obj[key]+'; expires='+d.toUTCString();
}
- }
1.setCookie({
name:'hello',
sex:'man',
love:'逛街',
work:'future'
},5);
获取cookie封装
1.function getCookie(obj){
var cookie = document.cookie;
// name=hello;
var result = {};
for(key in arguments){
var val = '\\b'+arguments[key]+'=(\\w*)+';
var reg =new RegExp(val,'i');
val = reg.exec(cookie);
result[arguments[key]] = val? decodeURI(val[1]):null;
}
return result;
}
- console.log( getCookie('age','name') );
移除cookie
1.function removeCookie(){ for(key in arguments){
var json ={};
json[arguments[key]]=null;
setCookie(json,-1);
}
}
- removeCookie('name');