如何在JavaScript中设置cookie

cookie的最基本的存储形式是“name=value”,
所以用JavaScript创建cookie的最简单的语法就是document.cookie="name=value";
一般来说都会为cookie的存储,读取,删除设置不同的函数,方便在程序中进行调用。

   

   //存储cookie
    function setCookie(name,value)
    {
        var args=setCookie.arguments;
        var len=setCookie.arguments.length;
        var expires=(len>2)?args[2]:"";
        var path=(len>3)?args[3]:"";
        var domain=(len>4)?args[4]:"";
        var secure=(len>5)?args[5]:false;
        document.cookie=name+"="+escape(value)+((expires=="")?"":(";expires="+expires.toGMTString()))+
        ((path=="")?"":(";path="+path))+((domain=="")?"":(";domain="+domain))+(secure?";secure":"");
            
    }
    这里默认的2个参数是必须的,第一个代表cookie的名字,第2个参数代表cookie的值
   

   另外可选的第3个参数代表cookie的生存期,这个参数的值必须是GMT格式的日期型字符串,代表这个cookie的过期时间,
    假如你想要这个cookie一天之后过期,可以执行如下代码:
    var now =new Date();
    now.setDate(now.getDate()+1);
    然后将now作为第3个参数传入即可。
   

    第4个参数用来设置cookie的路径,因为默认情况下cookie只可被创建它的网页或者与该网页在同一目录或者子目录下的所有网页访问
    如果要让该网页父目录的网页也能访问,则要将path的值设为相对于该网页的相对路径。
    比如http://www.myWeb.com/a/b/test.html创建的cookie,将path设为“a/”,则http://www.myWeb.com/a/路径中的网页也能访问该cookie,
    如果想整个网站都能访问该cookie,则需要将path设置为网站根目录,即“/”
   

    第5个参数表示cookie的域,默认情况下www.myWeb.com和bbs.myWeb.com属于不同的域,即这2个服务器的网页不能互相访问cookie,将domain设置 
    为“.myWeb.com”之后,就可以互相访问了
    第6个参数用来设置cookie的secure,如果为true,表示cookie只能通过https或其它安全协议才能被传输。
    一般来说为将cookie的值编码,所以用到了escape(value)

 

    //读取cookie
    function getCookie(name)
    {
        var mycookie=unescape(document.cookie);
        var cindex=mycookie.indexOf(name+"=");
        if(cindex!=-1)
        {
            var cstart=cindex+name.length+1;
            var cend=mycookie.indexOf(";",cstart);
            //如果找不到分号,则取cookie的最后
            if(cend==-1)
            {
                cend=mycookie.length;
            }
            return mycookie.substring(cstart,cend);
        }
    }
    //删除cookie
    function delCookie(name)
    {
        var time = new Date();
        time.setTime(time.getTime() - 1);
        var value = getCookie(name);
        document.cookie = name + "=" + value + ";expires=" + time.toGMTString();
    }
    cookie是不能被删除的,要删除某个cookie实际上就是将该cookie的expires设置为过期时间

如果还有任何疑问,欢迎留言,我会及时解答

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值