【cookie】实现保存、读取、删除功能

假设有这样一种情况,需要在A页面输入一条数据,使用JS变量保存这条数据,同时B页面引用,使用这条变量,由于JS代码有局限性,即无法达成传递数据的效果。

那么我们使用cookie来存放 读取数据。

cookie是name=value的格式。各个cookie之间一般是以“;”分隔。

文本框输入数据:

 

使用JS设置cookie:

 1        window.onload=function(){
 2                 var oTxt=document.getElementById('oTxt');
 3                 oTxt.oninput=function(){
 4                     //这里引用函数
 5                     getCookie('name',oTxt.value);
 6                 }
 7                 function getCookie(name,value,oDay){
 8                     //判断是否有没有oDay,如果没有默认为5天
 9                     oDay=oDay||5;
10                     var oTime=new Date();
11                     oTime.setDate(oTime.getDate()+oDay);
12                     document.cookie=name+'='+value+';path=/;expires='+oTime;
13                     //存放一条数据
14                 }
15             }

 

expires是保存的时间:

 

JS读取到cookie的Value值打印提取出来:

 1       window.onload=function(){
 2                 var p=document.getElementsByTagName('p');                
 3                 function getCookie(){
 4                     //分隔成数组的形式 得到 ["name", "20170615"]
 5                     var data=document.cookie.split('=');
 6                     //判断name
 7                     if(data[0] == 'name'){
 8                     return data[1];
 9                        }
10                 }
11                 var oValue=getCookie();
12                 document.write(oValue);
13             }

value输出到页面。

 

每个浏览器都包含有限的cookie数:

  Microsoft指出InternetExplorer8增加cookie限制为每个域名50个,但IE7似乎也允许每个域名50个cookie。

  Firefox每个域名cookie限制为50个。

  Opera每个域名cookie限制为30个。

  Safari/WebKit貌似没有cookie限制。但是如果cookie很多,则会使header大小超过服务器的处理的限制,会导致错误发生。

  注:“每个域名cookie限制为20个”将不再正确!

  因cookie有限的内容空间,可以把不必要的删除。

JS删除此条name:

 function removeCookie(name){
          setCookie(name,'asdas',-1);
      }

以上所述就是本文的全部内容了,希望大家能够喜欢。

posted @ 2017-06-15 17:40  hi?*  阅读(867)  评论(0编辑  收藏  举报