javascript 操作cookies詳解

來源:互聯網
上載者:User

標籤:dex   command   ber   www.   regexp   cin   tst   false   net   

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=/表示儲存在網域名稱路徑下,全域可用

?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 /***********************操作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的方法***************************/

感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

javascript 操作cookies詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.