javascript 操作cookies詳解
這段操作cookies的方法我使用很久了,但是一直一來(lái)沒(méi)遇到什么問(wèn)題,今天在做一個(gè)在第一個(gè)頁(yè)面保存了cookies,第二個(gè)頁(yè)面獲取或者第三個(gè)頁(yè)面獲取的功能中,發(fā)現(xiàn)了方法的局限性,比如,第一個(gè)頁(yè)面路徑為 http://xxxxx/cyb-car2016/h5OfficeWorker/index,第二個(gè)頁(yè)面路徑為 http://xxxxx/cyb-car2016/h5AlertController/index,其中除了域名是一樣之外,還有一個(gè)命名空間不一樣,而cookies是默認(rèn)保存在當(dāng)前頁(yè)面下,所以在第一個(gè)頁(yè)面中保存了cookies,因?yàn)楸4娴穆窂讲煌诙€(gè)頁(yè)面會(huì)獲取不到cookies。 解決方法是,在保存cookies的時(shí)候,設(shè)置一下path,document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/"; ,其中path=/表示保存在域名路徑下,全局可用
/***********************操作cookies的方法***************************///寫(xiě)cookies //這是有設(shè)定過(guò)期時(shí)間的使用示例: //s20是代表20秒 //h是指小時(shí),如12小時(shí)則是:h12 //d是天數(shù),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的方法***************************/感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注