js cookie
cookie 保存一些信息 eg:自动登录 记住用户名
同一个网站只有一套cookie 比如一个baidu.com/a.html baidu.com/b.html 同一套cookie否则在a网站登录一次到b网站还得再输一次()
说的就是同一个域名 (eg百度账号) cookie以域名为单位
cookie 数量大小有限(4k-10k)(恶意网站可能会弄个循环一直往你硬盘里塞东西cookie就满了)
cookie有过期时间【2周内自动登录 就是靠cookie完成】
<script> //cookie document上的一个属性而已 document.cookie='user=big';//给cookie赋值 document.cookie='pass=12344';//并没有被覆盖 反而两条cookie都被保留了下来 cookie里=表示添加的意思 所以无论=几次都不会被覆盖 //如果不指定cookie过期时间 则浏览器一关闭cookie消失 alert(document.cookie); </script>
现在是2019.3.10 <script> var oDate=new Date(); setDate()设置今天是几号 设置的是对象的内部时间 //oDate.setDate(1);//Date是日期 比如现在就会弹出2019-3-1 如果设置成32【三月只有三十一天】就会自动变成四月一 // oDate.setDate(oDate.getDate());//弹出2019-3-10 alert(oDate.getFullYear()+'-'+(oDate.getMonth()+1)+'-'+oDate.getDate()); //弹出当前时间 月份那个要加一 </script>
<script> var oDate=new Date(); oDate.setDate(oDate.getDate()+14); //设置对象oDate时间为2周之后 document.cookie='user=blue; expires='+oDate; //expires有效期限失效日期 +oDate就是相当于设置了cookie的过期时间 alert(document.cookie);//只会弹出来user=blue 就算把上面那句cookie设置话删掉也仍旧会弹出来 因为时间过期是2周之后 </script>
将设置查看删除cookie封装成函数
<script> function setCookie(name,value,iDay){//设置cookie var oDate=new Date(); oDate.setDate(oDate.getDate()+iDay); document.cookie=name+'='+value+';expirse'+oDate; } function getCookie(name){ var arr=document.cookie.split('; '); //字符串分割 用分号和空格拆分开 split之后变成了一个数组 arr存了些这些东西 username=dancing password=12142 a=1 b=2 for(var i=0;i<arr.length;i++){ var arr2=arr[i].split('='); //循环数组(a=b) 利用等号 再做一次拆分 if(arr2[0]==name){ //不是啊大哥这时候arr2 数组也就2个元素啊 不是你那一摞 return arr2[1]; } } return '';//没找到相对应的名字 返回空白值 } function removeCookie(name){ setCookie(name,14,-1);//-1天后过期 昨天过期了 赶紧删 } setCookie('username','dancing',365); setCookie('password','12142',14); /*alert(document.cookie);//username=dancing; password=12142 弹出这个.多条数据依靠分号和空格隔开 alert(getCookie('username'));//弹出dancing 上面几个setcookie的语句可省可不省 因为expirse时间很长 一年两周的
只要设置了一次cookie 当然就会被记住 你再省略不省略啥的也没意义*/ //removeCookie('username'); alert(document.Cookie); </script>
cookie应用 记住上次用户名
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>diyici</title> <script> function setCookie(name,value,iDay){ var oDate=new Date(); oDate.setDate(oDate.getDate()+iDay); document.cookie=name+'='+value+';expirse'+oDate; } 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 ''; } function removeCookie(name){ setCookie(name,14,-1); } //登录时:用户名存进cookie onload时(登录)从cookie中读取用户名 window.onload=function (){ var oForm=document.getElementById('form1'); var oUser=document.getElementsByName('user'); oForm.onsumbit=function (){ setCookie('user',oUser.value,14); }; oUser.value=getCookie('user'); } </script> </head> <body> <form id="form1" action="http://www.baidu.com/"> 用户名:<input type="text" name="user" /><br> 密码: <input type="password" name="pass"/><br> <input type="submit" value="登录"/> </form> </body> </html>