初涉Cookie

开始刷票啦,投票攻略,无限投方法!

清除页面Cookie,然后Bla Bla Bla...

哈哈,做粉丝的时候难免要投票,清除Cookie又总是无限投的秘诀。

但是话说自己真真的一次创建cookie都没有,只记得以前看过一篇博客说每个cookie不应大于4kb,要包含名字,值,还有有效期,创建的方法是document.cookie来

今天自己瞎搞搞,算是初次尝试cookie,不过自己脑海还是有很多问题

比如cookie和session的区别,我只知道一个是存在客户端(浏览器),一个存在服务器端。

但是创建cookie一般用客户端创建还是服务器端呢?这个之后自己再多看看一些文章研究研究,先写个小demo练练手。

做个登录框吧,简单点,就传个用户名就好

HTML部分,十分之丑

<form id="form1">
用户名:<input type="text" name="user"/><br/>
<input type="submit" value="登录" />
</form>

下面开始编写setCookie代码,一个cookie,需要名+值+期

function setCookie(c_name,value,expiredays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+"="+escape(value)+((expiredays==null)?"":";expires="+exdate.toGMTString());

}

((expiredays==null)?"":";expires="+exdate.toGMTString())的意思就是当expiredays==null就设为"",反之设为exdate.toGMTString())

接着是getInfo(),把表单提交的用户名提取出来,并赋予setCookie

window.onload=function getInfo()
{
    var _form=document.getElementById("form1");
    var _user=document.getElementsByName("user")[0];
    _form.onsubmit=function()
    {
        if(_user.value==null||_user.value=="")
        {
            alert('请输入用户名');
    
        }
        else{
        setCookie('user',_user.value,15);
        }
        
    }
    
}

话说我忘了getElementsByName返回的是数组/集合,所以后面要加个[0]。。。。用惯了jQuery就是毛病多啊

 这样子的话就大功告成啦

如果要在页面显示出来呢,可以弄个getCookie()

function getCookie(c_name)
{
    if(document.cookie.length>0)
    {
        c_start=document.cookie.indexOf(c_name+"=");
    
    if(c_start>-1)
    {
        c_start=c_start+c_name.length+1;
        c_end=document.cookie.indexOf(";",c_start);
        if(c_end==-1) {
            c_end=document.cookie.length;
            }
        return unescape(document.cookie.substring(c_start,c_end));
        
    }
    }
}

indexOf()应该还算熟悉了,就是返回字符首次出现的位置,对于查找十分的方便,记得之前做将url对象化也用到了。

至于清除cookie,有点累了,看看明天能不能研究下。。。再补充进去

原文地址:https://www.cnblogs.com/pilee/p/3572380.html