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>
原文地址:https://www.cnblogs.com/yundong333/p/10505539.html