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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTML 中没有与 cookie 直接相关函数,但是可以使用 JavaScript 来操作 cookie。以下是一些与 cookie 相关JavaScript 函数: 1. `document.cookie`:获取或设置当前文档的 cookie。 2. `encodeURIComponent(string)`:将字符串编码为 URI 组件。在设置 cookie 值时,需要对字符串进行编码,以便在 cookie 中存储特殊字符。 3. `decodeURIComponent(string)`:将 URI 组件解码为字符串。在获取 cookie 值时,需要对字符串进行解码,以便得到原始字符串。 4. `Date.toUTCString()`:将日期对象转换为 UTC 时间字符串。在设置 cookie 的过期时间时,需要将日期对象转换为 UTC 时间字符串。 5. `new Date(milliseconds)`:根据指定的毫秒数创建一个日期对象。在设置 cookie 的过期时间时,需要创建一个日期对象,并根据需要添加指定的毫秒数。 使用这些函数,可以通过 JavaScript 在 HTML 页面中操作 cookie。例如,以下代码演示了如何设置一个名为 `myCookie` 的 cookie,其值为 `hello world`,过期时间为 7 天: ``` var now = new Date(); var expires = new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000); document.cookie = "myCookie=" + encodeURIComponent("hello world") + "; expires=" + expires.toUTCString() + "; path=/"; ``` 要获取名为 `myCookie` 的 cookie 的值,可以使用以下代码: ``` var cookies = decodeURIComponent(document.cookie).split("; "); for (var i = 0; i < cookies.length; i++) { var cookie = cookies[i].split("="); if (cookie[0] == "myCookie") { var value = cookie[1]; break; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值