假设有这样一种情况,需要在A页面输入一条数据,使用JS变量保存这条数据,同时B页面引用,使用这条变量,由于JS代码有局限性,即无法达成传递数据的效果。
那么我们使用cookie来存放 读取数据。
cookie是name=value的格式。各个cookie之间一般是以“;”分隔。
文本框输入数据:
使用JS设置cookie:
1 window.οnlοad=function(){
2 var oTxt=document.getElementById('oTxt');
3 oTxt.οninput=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.οnlοad=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); }
以上所述就是本文的全部内容了,希望大家能够喜欢。