2020-09-22---Cookie

创建cookie

//创建cookie
// function createCookie(key,value,json){
//     //初始化参数
//     //如果第三个参数没有传,就是undefined,然后下面用json.[]时候就是undefined.[],这样就会报错。所以必须要初始化第三个参数,有参数就为传过来的参数,没有就为空对象
//     json = json || {};
//     let cookis_str = encodeURIComponent(key) + '=' + encodeURIComponent(value);
//     //有效期
//     //判断传过来的参数是否为数字
//     //当传正数的时候,就为有效期;当传负数的时候,表示过去的时间,相当于这条cookie已经过期了,过期了就会从cookie中删除
//     if(!isNaN(json.expires)){
//         let date = new Date();
//         date.setDate(date.getDate() + json.expires);
//         cookis_str +  ';expires=' + date;
//     }
//     //path
//     if(json.path){
//         cookis_str += ';path=' + json.path;
//     }
//     //domain
//     if(json.domain){
//         cookis_str += ';domain=' + json.domain;
//     }
//     //secure
//     if(json.secure){
//         cookis_str += ';secure';
//     }
//     // 放到cookie里面
//     document.cookie = cookis_str;
// }
//测试
// createCookie('name','tom',{expires : 3,path : '/'});
// createCookie('name','张三',{expires:7,path:'/'});
// createCookie('url','lihua.126.com');
// createCookie('email','lihua@126.com',{expires:3});


获取cookie

方法一:

//传入key,拿到value
//'name=tom; url=lihua.126.com; email=lihua@126.com'
// function getCookie(key){
//     //查找的子串  因为截取的时候要从等号后面开始截取
//     let cookie_key = encodeURIComponent(key) + '=';
//     //cookie父串
//     let cookie_str = document.cookie;
//     //查找开始的位置
//     let start = cookie_str.indexOf(cookie_key) ;
//     //如果找到了开始的位置,则找结束位置
//     if(start !== -1){
//         let end = cookie_str.indexOf(';',start);
//         //如果是结束位置,没有分号
//         if(end === -1){
//             end = cookie_str.length;
//         }
//         //截取出查找的结果
//         return decodeURIComponent(cookie_str.substring(start + cookie_key.length,end));
//     }
// }
//测试
// alert(getCookie('name'));

方法二:

function getCookie(key){
    let cookie_str = document.cookie;
    let cookie_arr = cookie_str.split('; ');
    for(let i = 0,len = cookie_arr.length;i < len;i ++){
        let cookie_list = cookie_arr[i].split('=');
        if(encodeURIComponent(key) === cookie_list[0]){
            return decodeURIComponent(cookie_list[1]);
        }
    }
}
alert(getCookie('url'));

移除cookie

//思路,当cookie过期了,就从cookie删除了
//new Date();当里面只有一个参数时,创建的时间为1970年
function removeCookie(key,json){
    //初始化参数
    json = json || {};
    if(json.path){
        document.cookie = encodeURIComponent(key) + '=;expires=' + new Date(1) + ';path=' + json.path;
    }else{
        document.cookie = encodeURIComponent(key) + '=;expires=' + new Date(1);
    }
}
removeCookie('name',{path:'/'});
//使用创建的函数,时间参数传的为负数来删除
createCookie('url','',{expires:-1});
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页