码迷,mamicode.com
首页 > 其他好文 > 详细

cookie封装

时间:2015-09-22 01:27:20      阅读:430      评论:0      收藏:0      [点我收藏+]

标签:

虽然现在HTML5胜行,localStorage已远远的胜过cookie,但是在天朝,ie6(基本已淘汰),ie7还需要考虑的前提下,cookie还是有用武之地的。

一直都有到cookie,也有了解过cookie的原理,工作中也一直不能忽视工期,基本使用cookie就用jquery.cookie.js解决啦,今天正好有时间就封装下原生的cookie函数。

代码如下(有详细注释):

/设置cookie
    function setCookie(name,value,d){
        var dateo=new Date(),//获取当前时间对象
            day=dateo.getDate();//获取当前的日期-1值
        dateo.setDate(day+d);//修改当前值为d天后
        document.cookie=name+"="+encodeURI(value)+"; expires="+dateo.toGMTString();//设置cookie,expires为过期日期,设置的格式应该是"name=value; expires=过期日期"
    }
    
    //获取cookie
    function getCookie(name){
        var cookiestr=document.cookie,//获取cookie,格式应该为"name=value; name0=value0"
            cookiearr0=cookiestr.split("; "),//以"; "来分构字符串成数组 ["name=value","name0=value0"]
            cookiearr1=[];
        for(var i=0;i<cookiearr0.length;i++){
            cookiearr1=cookiearr0[i].split("=");//以"="分构字符串为数组,["name","value"]
            if(cookiearr1[0]==name){//如果找到相同名称的cookie,返回它的值
                return decodeURI(cookiearr1[1]);
            }
        }
        return "";//如果没有找到相同名的cookir,返回空
    }

    //删除cookie
    function removeCookie(name){
        setCookie(name,"",-1);//把过期时间设为昨天,即删除了当前cookie
    }

测试代码如下(本地用火狐,chrome本地不支持操作cookie,IE下查看不方便):

    setCookie("test","你是谁?",1);
    console.log(getCookie("test"));
    setTimeout(function(){
        removeCookie("test");
    },10000)
    setTimeout(function(){
        console.log(getCookie("test"));
    },11000)

技术分享技术分享

在线测试环境

cookie封装

标签:

原文地址:http://www.cnblogs.com/xwwin/p/4827777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!