cookie相关的函数

浏览器中,使用JavaScript操作cookie的两个工具函数。

设置cookie值, 必须的参数是name和value,可选参数是过期天数和域名。

// 设置cookie值(key,value,过期天数,域名)
function setCookie(cookieName, cookieValue, expiredays, domain){
    // 0 比较特殊
    if(0 === cookieValue){
        cookieValue = 0;
    } else if(!cookieValue){
        cookieValue = "";
    }
    // 编码
    cookieValue = encodeURIComponent(cookieValue);
    //获取cookie字符串
    var cookieStr= cookieName + "=" + cookieValue;

    // 过期时间
    if(expiredays && !isNaN(expiredays)){
        var exdate=new Date();
        exdate.setDate(exdate.getDate()+expiredays);
        cookieStr += "; expires="+exdate.toGMTString();
    }
    // 域名
    //domain = domain || document.domain;
    if(domain){
        cookieStr += "; path=" + "/";
        cookieStr += "; domain="+domain;
    }

    // 保存本地 cookie
    document.cookie = cookieStr;

    // 返回设置后的值
    return cookieValue;
};

获取cookie值,只需要一个name,过期时间和域名浏览器会自己管理,有效的cookie也只能获取到名称和值。

// 获取cookie值(key)
function getCookie(cookieName){
    //获取cookie字符串
    var strCookie=document.cookie;
    //将多cookie切割为多个名/值对
    var arrCookie=strCookie.split("; ");
    var cookieValue = null;
    //遍历cookie数组,处理每个cookie对
    for(var i=0;i<arrCookie.length;i++){
        var arr=arrCookie[i].split("=");
        //找到cookie,并返回它的值
        if(cookieName==arr[0]){
            cookieValue=(arr[1]);
            break;
        }
    }
    //
    if(!cookieValue){
        cookieValue = "";
    }
    cookieValue = decodeURIComponent(cookieValue);
    //
    return cookieValue;
};

如果要删除一个cookie要怎么做?JS是没有这个API的,根据上面我们学到的知识,过期的cookie就相当于被删除了。
示例如下

setCookie("user", "renfufei");// "renfufei"
getCookie("user");// "renfufei"
setCookie("user", "renfufei", -1);// "renfufei"
getCookie("user");// ""

感谢: 太空飞猪

欢迎加入: CNC开源组件开发交流群 316630025

日期: 2016年1月7日

作者: 铁锚 http://blog.csdn.net/renfufei

©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值