cookie的知识点

1.   Cookie的作用:

a)   在客户端保存一定的信息;

b)   自动登录、记住用户名等;

2.   Cookie和网页缓存:

a)   没有关系;

b)   Cookie完全由JS控制;

3.   Cookie的特性:

a)   同一个网站中的所有页面共享一套Cookie;

b)   Cookie的数量和总体积都是有限的;

c)   Cookie有保质期的,过期后自动消失;

4.   JS中使用cookie:

a)   cookie是document上的一个属性

b)   document.cookie;

c)   cookie像银行一样,先要往里存钱,然后才能取钱;

5.   设置cookie:

a)   名字 = 值;document.cookie = "user=aaa";

b)   Cookie中等号是添加的意思、不是赋值,添加多个时不会覆盖

c)   如不指定过期时间,浏览器关闭时就会消失

d)   过期时间的指定:document.cookie = "user=aaa;expires="+oDate;

e)   每一条cookie都可以有自己独立的过期日期;

f)   封装:setCookie(name, value, iDay);

6.   获取cookie:

a)   两次split分割字符串:

        i.      'username=abc; password=123456; aaa=123';

       ii.      arr->['username=abc', 'passname=123456', ....]

     iii.      arr2->['username', 'abc']

7.   删除cookie:

a)   将指定name的cookie项的expires =-1;

8.   Cookie使用实例:

a)   Cookie_结合拖拽:用cookie记录上一次Div的位置

        i.      在鼠标抬起时, 记录位置;

       ii.      在window.onload时, 读取位置;

b)   用Cookie记录上次登录的用户名:

        i.      onsubmit: 记录用户名;

       ii.      window.onload时: 获取用户名;

如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。

如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。

cookie包括:name,value,domain,path,expires

 

cookie.js:

//设置cookie
function setCookie(name,value,iDay){
    if(iDay){
        var oDate = new Date();
        oDate.setDate(oDate.getDate()+iDay);
        document.cookie = name+'='+value+'; PATH=/; EXPIRES='+oDate;        
    }else{
        document.cookie = name+'='+value+'; PATH =/';         
    }
}

//读取
function getCookie(name){
    var arr =  document.cookie.split('; ');
    for(var i = 0;i<arr.length;i++){
        if(arr[i].split('=')[0] == name){
            return arr[i].split('=')[1];
        }
    }
    return '';
}
//借刀杀人 function removeCookie(name){ setCookie(name,1,-1); }

 

选项卡:

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            #box .on{ background:red;}
            #box div{width:200px;height:200px; background:#ccc; display:none;}
        </style>
        <script src='cookie.js'></script>
        <script>
            window.onload = function(){
                    var oBox = document.getElementById('box');
                    var aBtn = oBox.getElementsByTagName('input');    
                    var aDiv = oBox.getElementsByTagName('div');
                    var count=getCookie('count')||0;
                    if(count){
                        tab();
                    }
                    for(var i = 0;i<aBtn.length;i++){
                        (function(index){
                            aBtn[i].onclick = function(){
                                count=index;
                                setCookie('count',count,2);
                                tab();
                            }
                        })(i)
                    }    
                  function tab(){
                         for(var i = 0;i<aBtn.length;i++){
                             aBtn[i].className = '';
                             aDiv[i].style.display = 'none';
                         }
                        aBtn[count].className = 'on';
                        aDiv[count].style.display = 'block';
                    };
    };
        </script>
    </head>
    <body>
        <div id="box">
        <input type="button" value="小说" class="on">
        <input type="button" value="电影">
        <input type="button" value="音乐">
        <div style="display:block">梦里花落知道多</div>
        <div>寒战2</div>
        <div>如果你也听说</div>
    </div>
    </body>
</html>

 

拖拽:

<html>
<head>
<meta charset="utf-8">
<meta name="author" content="智能社 - zhinengshe.com">
<meta name="copyright" content="智能社 - zhinengshe.com">
<title>智能社 - www.zhinengshe.com</title>
<style>
    #div1{width:100px;height:100px; background:red; position:absolute;left:0; top:0;}
</style>
<script src="cookie.js"></script>
<script>
window.onload=function(){
    var oBox=document.getElementById("div1");
    var x=getCookie('x')||0;    //如果是第一次则坐标为0;否则为上一次存储的坐标;
    var y=getCookie('y')||0;
    oBox.style.left=x+'px';
    oBox.style.top=y+'px';
    oBox.onmousedown=function(ev){
        var e=ev||event;
        var disX=e.clientX-oBox.offsetLeft;
        var disY=e.clientY-oBox.offsetTop;
        document.onmousemove=function(ev){
            var e=ev||event;
            var l=e.clientX-disX;
            var t=e.clientY-disY;
            oBox.style.left=l+'px';
            oBox.style.top=t+'px';
        }
        document.onmouseup=function(){
            setCookie('x',oBox.offsetLeft,2);   //鼠标抬起之后设置oBox位置
            setCookie('y',oBox.offsetTop,2);
            document.onmousemove=null;
            document.onmouseup=null;
            oBox.releaseCapture&&oBox.releaseCapture();
        }
        oBox.setCapture&&oBox.setCapture();
        return false;
    }
}

</script>
</head>
<body>
    <div id="div1"></div>
</body>
</html>

 

换肤:

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link  id='li' rel="stylesheet" href="skin1.css" />
        <script src="cookie.js"></script>
        <style>
            #box{color:#fff}
        </style>
        <script>
            window.onload=function(){
                var aInput=document.getElementsByTagName('input');
                var oA=document.getElementById('li');
                var count=getCookie('count')||0;         //开始时取0;后期取前一次存储的值;
                oA.href=arr[count];
                var arr=['skin1.css','skin2.css','skin3.css'];
                for(var i=0;i<aInput.length;i++){
                    (function(index){
                        aInput[index].onclick=function(){
                            count=index;                  //用于记住当前点击的按钮
                            setCookie('count',count,2);  //设置count到cookie中,用于获取
                            oA.href=arr[count];
                        }
                    })(i)
                }
            };
        </script>
    </head>
    <body style="height:2000px;">
        <div id="box">
            <input type="button" value="变蓝" />
            <input type="button" value="变红" />
            <input type="button" value="变绿" />
        </div>
    </body>
</html>

 

记住我:

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="cookie.js"></script>
        <script>
            window.onload=function(){
                var oBtn=document.getElementById("btn");
                var oUser=document.getElementById("user");
                oBtn.onclick=function(){
                    if(this.checked){        //如果复选框选中,设置cookie存储,复选框取消,删除cookie;
                        setCookie('user',oUser.value,2);
                    }else{removeCookie('user');}
                }
                if(getCookie('user')){          //如果cookie值存在则让复选框选中,同时让输入框的值为上一次保存的值
                    oUser.value=getCookie('user');
                    oBtn.checked=true;
                }
            }
        </script>
    </head>
    <body>
        用户名:<input type="text" id='user'/><br />
        <input type="checkbox"  id='btn'/>记住我
    </body>
</html>

 

posted @ 2016-07-29 00:05  河南小样  阅读(236)  评论(0编辑  收藏  举报