本地测试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>