cookie

alert(typeof document.cookie);  //string  查看是否有cookie
//向本地磁盘写入cookie
document.cookie='user=张三';
alert(document.cookie);
// PS: 本地不存在域名,所以域就为空
 

 

 

------------------------------------------------------------------------------------------------

document.cookie='user='+encodeURIComponent('张三');  //user=%E5%BC%A0%E4%B8%89 编码 这个已经写入磁盘了,所以不要这句也可以获取
alert(decodeURIComponent(document.cookie)); //user=张三 解码
 
-----------------------------------------------------------------------------------------------------------------------------------------------------
alert(decodeURIComponent(document.cookie));
//如果不向磁盘写入cookie,我们还是可以获取cookie的
-----------------------------------------------------------------------------------------------------
//过期时间,就是到了这个时间点,就会自动清理cookie
//在会话结束时,就是关闭浏览器后就自动清理cookie了
//在火狐的浏览器关闭后,火狐的cookie被删除了,
//但不影响其他浏览器的cookie,因为每个浏览器都各自保存了自己的cookie,不通用一个cookie
//expires=date 失效时间,如果没有声明,则为浏览器关闭后即失效。声明了失效时间,那么时间到期后方能失效。
----------------------------------------------------------------------------------------------------
//完整形式
// document.cookie='user=值;[expires=失效时间;path=路径访问;domain=域名访问;secure=安全的https限制通信]'

// var date=new Date();
// date.setDate(date.getDate()+7);  //27号
// document.cookie='user='+encodeURIComponent('张三')+';expires='+date;  
//当过了这个时间点,那么cookie就被清理了
alert(decodeURIComponent(document.cookie));
----------------------------------------------------------------------------------------
清除cookie
var date=new Date();
date.setDate(date.getDate()-1); 
//设置为当前时间的之前时间,即可手工清理cookie ,删除cookie方法,真正的删掉了
document.cookie='user='+encodeURIComponent('张三')+';expires='+date;  
alert(decodeURIComponent(document.cookie));
---------------------------------------------------------------------------------------------------
清除cookie的另一种方法
document.cookie='user='+encodeURIComponent('张三')+';expires='+new Date(0);  
alert(decodeURIComponent(document.cookie));
---------------------------------------------------------------------------------------------------
//path 路径限制,可以限制访问cookie的目录
var path='/D:/workspace/gengxin/javascript/demo/'
document.cookie='user='+encodeURIComponent('李四')+';path='+path;  
alert(decodeURIComponent(document.cookie));
----------------------------------------------------------------------------------------------------
// domain 限制域名访问
// var domain='yc60.com';  //无效,域名不用设置
// document.cookie='user='+encodeURIComponent('李四1')+';domain='+domain;  
// alert(decodeURIComponent(document.cookie));

// secure 指定必须通过https来通信访问
// 仅限加密链接,安全性更好
document.cookie='user='+encodeURIComponent('李四1');  
alert(decodeURIComponent(document.cookie));
 
-----------------------------------------------------------------------------------------------------------------------
 
//设置cookie
function setCookie(name,value,expires,path,domain,secure){
    var cookieName=encodeURIComponent(name)+'='+encodeURIComponent(value);
    if(expires instanceof Date){
        cookieName+=';expires='+expires;
    }
    if(path){
        cookieName+=';path='+path;
    }
    if(domain){
        cookieName+=';domain='+domain;
    }
    if(secure){
        cookieName+=';secure';
    }
    document.cookie=cookieName;
}

function setCookieDate(day){ //传递一个天数,比如传递7,就7天后失效
    var date=null;
    if(typeof day == 'number' && day > 0){
        date=new Date();
        date.setDate(date.getDate()+day);
    }else {
        throw new Error('您传递的天数不合法!必须是数字切大于0');
    }
    return date;
}

// setCookie('user','张三',setCookieDate(7));
// setCookie('url','yc60.com',setCookieDate(7));
// setCookie('email','yc60.com@gmail.com',setCookieDate(7));
 
 
--------------------------------------------------------------------------------------
//获取cookie
function getCookie(name){
    // return document.cookie;
    var cookieName=encodeURIComponent(name)+'=';
    // alert(cookieName);
    var cookieStart=document.cookie.indexOf(cookieName)
    // alert(cookieStart);
    var cookieValue=null;
    if(cookieStart>-1){ //有值
       var cookieEnd=document.cookie.indexOf(';',cookieStart);
       if(cookieEnd==-1){
           cookieEnd=document.cookie.length;
       }
    //    alert(cookieStart+cookieName.length);
       cookieValue=decodeURIComponent(document.cookie.substring(cookieStart+cookieName.length,cookieEnd));
    }
    return cookieValue;
}
// alert(getCookie());  

// user=%E5%BC%A0%E4%B8%89; url=yc60.com; email=yc60.com%40gmail.com
//cookieName 得到 user= 或者 url= 或者 email=
//cookieStart 得到 user= 或者其他的位置  user=位置是0  url=位置是25  email=位置是39  不存在就是-1
// cookieEnd 得到 user的结尾';'是23,url的结尾是37 email的结尾是-1,用document.cookie.length 65
// 0+(user=).length,cookieEnd 得到:%E5%BC%A0%E4%B8%89
alert(getCookie('email'));
 

 

 

 

// sessionStorage.setItem('name','Lee');
// sessionStorage.removeItem('name');
// alert(sessionStorage.getItem('name'));

// sessionStorage.bbb='Lee1';
// sessionStorage.removeItem('bbb');
// alert(sessionStorage.bbb);

// localStorage 和 sessionStorage 使用方法一样

 

posted @ 2017-09-19 12:56  耿鑫  阅读(96)  评论(0编辑  收藏  举报