JsCookie

  • cookie 用来存储数据数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来向访问者的电脑上存储数据
  • 不同的浏览器存放的cookie位置不一样,所以也是不能通用的
  • cookie的存储是以域名的形式进行划分的
  • cookie的数据是可以设置名字的
  • 一个域名下面存放的cookie的个数是有限制的。不同的浏览器存放的个数也不一样。
  • 每一个cookie存放的内容大小也是有限制的,不同的浏览器存放的内容大小不一样。

我们通过document.cookie来获取当前网站下的cookie的时候,得到的是字符串形式的值,它包含了当前网站下所有的cookie,它会把所有的cookie通过一个分号+空格的形式串联起来。

如果我们想长时间存放一个cookie,需要设置这个cookie的时候,同时给他设置一个过期的时间(这个时间必须是字符串的格式)cookie默认是临时存储的,当浏览器关闭进程的时候,自动销毁.

cookie的操作

//document.cookie = '名字=值;expires='+字符串格式的时间
例如:
var oDate = new Date();
oDate.setDate(oDate.getDate()+10); //10天以后销毁
//oDate.toGMTString(); 将日期转换为字符串格式
//内容最好编码存放,encodeURI
//alert(encodeURI('你好'));
//alert(decodeURI('%E4%BD%A0%E5%A5%BD'));结果就是你好
document.cookie = 'username='+encodeURI('leo\n你好')+'leo;expires='+oDate.toGMTString();
document.cookie = 'age=32';

我把获取到cookie,设置cookie,删除cookie封装成了插件

获取cookie

function getCookie(key){
   var arr1 = document.cookie.split(";");
   for(var i =0;i<arr1.length;i++)
  {
     var arr2 = arr1[i].split("=");
     if(arr2[0]==key)
    {
      return decodeURI(arr2[1]);
     }
  }
}

设置cookie

function setCookie(key,value,t){
 var oDate = new Date();
 oDate.setDate(oDate.getDate()+t);
document.cookie = key+"="+value+' ;expires='+oDate.toGMTString();
}

删除cookie,一般用不到删除。时间到了自动就没了

function deleteCookie(key){
  setCookie(key," ",-1)
}

下面是cookie的运用

记录用户登录名:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>cookie获取</title>
</head>
<body>
<input type = "text" id="username">
<input type = "button" id="login" value="登录">
<input type="button" value="删除" id="del">
<script>
    var oUesername = document.getElementById("username");
    var oLogin = document.getElementById("login");
    var oDel = document.getElementById("del");
    //工具类开始
    //获取到cookie
    function getCookie(key){
        var arr1 = document.cookie.split(";");
        for(var i =0;i<arr1.length;i++)
        {
            var arr2 = arr1[i].split("=");
            if(arr2[0]==key)
            {
                return decodeURI(arr2[1]);
            }
        }
    }
    //获取结束
    //设置cookie
    function setCookie(key,value,t){
        var oDate = new Date();
        oDate.setDate(oDate.getDate()+t);
        document.cookie = key+"="+value+' ;expires='+oDate.toGMTString();
    }
    //设置结束
    //删除cookie
    function deleteCookie(key){
        setCookie(key," ",-1)
    }
    //删除结束
    //工具类结束
    if(getCookie("username"))
    {
        oUesername.value = getCookie("username");
    }
    oLogin.onclick = function(){
        window.alert("登陆成功");
        setCookie("username","小明",10);
    }
    oDel.onclick = function(){
        deleteCookie("username");
        oUesername.value = "";
    }

</script>
</body>
</html>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容