代码改变世界

window.cookie

2015-10-30 14:01  孤独大兔子  阅读(3842)  评论(0编辑  收藏  举报

本地测试cookie用火狐来测试

首先cookie是document上的一个属性。

先弹出一个cookie

alert(document.cookie);     //弹出是空的

设置cookie,格式是有一定要求的,格式是,名字=值 这样的格式

所以设置的时候,这样设置

document.cookie="user=jack";

如果要添加两条,不会被覆盖,中间是用 ; (分号+空格)来链接的

document.cookie="user=jack";
document.cookie="pass=123456";

cookie信息可在隐私中查看

但是如果不设置了,把这两句注释了的话,就会继续弹出空

//document.cookie="user=jack";
//document.cookie="pass=123456";
alert(document.cookie);

是因为没有指定过期时间,到浏览器关闭,就没了

设置过期时间

var oDate=new Date();
oDate.setDate(oDate.getDate()+14);    //为了得出14天以后是几号
document.cookie="user=jack;expires="+oDate;
document.cookie="pass=123456";
alert(document.cookie);

这样的话,就算注释了,再重新打开浏览器也会弹出user的cookie

过期时间,也产生了变化

为了简便,封装一下cookie

//设置cookie
function setCookie(name,value,iDay){
    var oDate=new Date();
    oDate.setDate(oDate.getDate()+iDay);    //iDay是几天过期
    document.cookie=name+'='+value+';expires='+oDate;
}
//读取cookie
function getCookie(name){         
    var arr=document.cookie.split("; ");
    for(var i=0;i<arr.length;i++){
    var arr2=arr[i].split('=');
        if(arr2[0]==name){
      return arr2[1];
    } 
    }
  return '';
}
//删除cookie
function removeCookie(name){
  setCookie(name,1,-1);             //-1天过期
}

//调用
setCookie("user","lynn",13);
setCookie("password","123456",365);
setCookie("words","book",365);
alert(document.cookie);
removeCookie("password");
alert(document.cookie);

 第一个小例子

if(getCookie("pop")=="open"){
  alert("我是第N次打开");
}else{
  alert("我是第一次打开");
  setCookie("pop","open",1);     //1天以后过期
}

第二个小例子

<form id="form1" action="">
  用户名:<input type="text" name="user" /><br />
  密码:<input type="password" name="pass" /><br />
  <input type="submit" value="登陆" />
</form>

<script type="text/javascript">
  window.onload=function(){
    var oForm=document.getElementById('form1'),
        oUser=document.getElementsByName('user')[0];

        oForm.onsubmit=function(){
          setCookie('user',oUser.value,14)
        }
        oUser.value=getCookie('user');
  }
</script>