• JS设置,获取,删除 cookies


    //JS操作cookies方法! 

    //写cookies 

    function setCookie(name,value) 

        var Days = 30; 
        var exp = new Date(); 
        exp.setTime(exp.getTime() + Days*24*60*60*1000); 
        document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 


    //读取cookies 
    function getCookie(name) 

        var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
     
        if(arr=document.cookie.match(reg))
     
            return unescape(arr[2]); 
        else 
            return null; 


    //删除cookies 
    function delCookie(name) 

        var exp = new Date(); 
        exp.setTime(exp.getTime() - 1); 
        var cval=getCookie(name); 
        if(cval!=null) 
            document.cookie= name + "="+cval+";expires="+exp.toGMTString(); 

    //使用示例 
    setCookie("name","hayden"); 
    alert(getCookie("name")); 

    //如果需要设定自定义过期时间 
    //那么把上面的setCookie 函数换成下面两个函数就ok; 


    //程序代码 
    function setCookie(name,value,time)

        var strsec = getsec(time); 
        var exp = new Date(); 
        exp.setTime(exp.getTime() + strsec*1); 
        document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 

    function getsec(str)

       alert(str); 
       var str1=str.substring(1,str.length)*1; 
       var str2=str.substring(0,1); 
       if (str2=="s")
       { 
            return str1*1000; 
       }
       else if (str2=="h")
       { 
           return str1*60*60*1000; 
       }
       else if (str2=="d")
       { 
           return str1*24*60*60*1000; 
       } 

    //这是有设定过期时间的使用示例: 
    //s20是代表20秒 
    //h是指小时,如12小时则是:h12 
    //d是天数,30天则:d30 

    setCookie("name","hayden","s20");

    或者 

    var cookie = {
            set:function(key,val,time){//设置cookie方法
                var date=new Date(); //获取当前时间
                var expiresDays=time;  //将date设置为n天以后的时间
                date.setTime(date.getTime()+expiresDays*24*3600*1000); //格式化为cookie识别的时间
                document.cookie=key + "=" + val +";expires="+date.toGMTString();  //设置cookie
            },
            get:function(key){//获取cookie方法
                /*获取cookie参数*/
                var getCookie = document.cookie.replace(/[ ]/g,"");  //获取cookie,并且将获得的cookie格式化,去掉空格字符
                var arrCookie = getCookie.split(";")  //将获得的cookie以"分号"为标识 将cookie保存到arrCookie的数组中
                var tips;  //声明变量tips
                for(var i=0;i<arrCookie.length;i++){   //使用for循环查找cookie中的tips变量
                    var arr=arrCookie[i].split("=");   //将单条cookie用"等号"为标识,将单条cookie保存为arr数组
                    if(key==arr[0]){  //匹配变量名称,其中arr[0]是指的cookie名称,如果该条变量为tips则执行判断语句中的赋值操作
                        tips=arr[1];   //将cookie的值赋给变量tips
                        break;   //终止for循环遍历
                    }
                }
                return tips;
            },
            delete:function(key){ //删除cookie方法
                var date = new Date(); //获取当前时间
                date.setTime(date.getTime()-10000); //将date设置为过去的时间
                document.cookie = key + "=v; expires =" +date.toGMTString();//设置cookie
            }
        }


      通过 cookie.set("uesr","sss",7); cookie.get();  cookie.delete()  完成

     

    在本地测试时刚开始 以上代码不起作用,后来发现只是在 chrome 中无法生效,经百度原来是在 chrome 中无法通过文件路径 即 file://  这样子来设置 cookie 的,换成 IP 或者 域名是一切OK的,而且这种情况也只在 chrome 发生,其他火狐,IE一切OK 

    cookies 无法删除时 请看这里  http://php.js.cn/blog/delete-cookie/ 

    转载自  https://www.cnblogs.com/limeiky/p/6927305.html

    既不回头,何必不忘; 既然无缘,何须誓言; 今日种种,逝水无痕; 明夕何夕,君已陌路;
  • 相关阅读:
    Java基础学习02--I/O字符流
    MacOS系统Web服务器
    git学习01--git基本命令
    dokcer学习02--Docker Compose基本使用
    dokcer学习01--docker安装(MacOS)与基本命令
    JVM学习01--JVM结构与代码存储位置
    奈氏准则和香农定理
    物理层接口特性、数据通信模型、物理层基本概念(数据、信号、码元 、信源、信道、信宿 、速率、波特、带宽)
    计算机网络第一章小结
    TCP/IP参考模型(应用层、传输层、网际层、网络接口层)、五层参考模型(应用层、传输层、网络层、数据链路层、物理层)、OSI与TCP/IP参考模型比较
  • 原文地址:https://www.cnblogs.com/zyjfire/p/8493387.html
Copyright © 2020-2023  润新知