javascript 操作cookies详解及实例
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
functionsetCookie(name,value,time){
varstrsec=getsec(time);
varexp=newDate();
exp.setTime(exp.getTime()+strsec*1);
document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString()+";path=/";
}
//读取cookies
functiongetCookie(name){
vararr,reg=newRegExp("(^|)"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
returnunescape(arr[2]);
else
returnfalse;
}
//删除cookies
functiondelCookie(name){
varexp=newDate();
exp.setTime(exp.getTime()-1);
varcval=getCookie(name);
if(cval!=null)
document.cookie=name+"="+cval+";expires="+exp.toGMTString()+";path=/";
}
functiongetsec(str){
//alert(str);
varstr1=str.substring(1,str.length)*1;
varstr2=str.substring(0,1);
if(str2=="s")
{
returnstr1*1000;
}
elseif(str2=="h")
{
returnstr1*60*60*1000;
}
elseif(str2=="d")
{
returnstr1*24*60*60*1000;
}
}
//获取Cookie
//varname=getCookie("name");
//varphone=getCookie("phone");
//
//if(phone!=""){
//$("input[name=phone]").val(phone);
//}
//if(name!="false"){
//$("input[name=name]").val(name);
//}
/***********************操作cookies的方法***************************/
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!