首页 > 编程 > JavaScript > 正文

javascript 操作cookies详解及实例

2019-11-19 17:27:13
字体:
来源:转载
供稿:网友

javascript 操作cookies详解

这段操作cookies的方法我使用很久了,但是一直一来没遇到什么问题,今天在做一个在第一个页面保存了cookies,第二个页面获取或者第三个页面获取的功能中,发现了方法的局限性,比如,第一个页面路径为 http://xxxxx/cyb-car2016/h5OfficeWorker/index,第二个页面路径为 http://xxxxx/cyb-car2016/h5AlertController/index,其中除了域名是一样之外,还有一个命名空间不一样,而cookies是默认保存在当前页面下,所以在第一个页面中保存了cookies,因为保存的路径不同,第二个页面会获取不到cookies。 解决方法是,在保存cookies的时候,设置一下path,document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/"; ,其中path=/表示保存在域名路径下,全局可用

/***********************操作cookies的方法***************************///写cookies //这是有设定过期时间的使用示例: //s20是代表20秒 //h是指小时,如12小时则是:h12 //d是天数,30天则:d30 function setCookie(name,value,time){ var strsec = getsec(time);  var exp = new Date();  exp.setTime(exp.getTime() + strsec*1);  document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/"; }//读取cookies function getCookie(name){ var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); if(arr=document.cookie.match(reg))   return unescape(arr[2]);  else   return false; }// 删除cookiesfunction delCookie(name){ var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval=getCookie(name); if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString()+";path=/";}function getsec(str){ //alert(str);  var str1=str.substring(1,str.length)*1;  var str2=str.substring(0,1);  if (str2=="s") {   return str1*1000;  } else if (str2=="h") {   return str1*60*60*1000;  } else if (str2=="d")  {    return str1*24*60*60*1000;   } }//获取Cookie//var name = getCookie("name");//var phone = getCookie("phone");////if(phone != ""){// $("input[name=phone]").val(phone);//}//if(name!="false"){// $("input[name=name]").val(name);//}/***********************操作cookies的方法***************************/

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表