zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    数据结构之队列
    数据结构之循环链表-c语言实现
    数据结构之栈-c语言实现
    数据结构之栈
    vue v-model原理实现
    vue中使用mixins
    async和await
    vue组件中使用watch响应数据
    vue组件中使用<transition></transition>标签过渡动画
    react-motion 动画案例介绍
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7389259.html
Copyright © 2011-2022 走看看