js如何建立、刪除或者檢測cookie是否存在

admin發表於2017-03-15

在網站中,對於cookie的應用非常的頻繁,儘管它有很多缺點,比如最被人詬病的都是安全性問題,但是並不妨礙它受歡迎的程度,因為在某些應用中非常的遍歷,例如記住瀏覽者使用者名稱,或者其他一些臨時性的資訊。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
//獲得coolie 的值
function cookie(name){    
  var cookieArray=document.cookie.split("; ");//得到分割的cookie名值對    
  var cookie=new Object();    
  for(var i=0;i<cookieArray.length;i++){    
    var arr = cookieArray[i].split("=");//將名和值分開    
    if(arr[0]==name)return unescape(arr[1]);//如果是指定的cookie,則返回它的值    
  } 
  return ""; 
}
//刪除cookie
function delCookie(name){
  document.cookie = name+"=;expires="+(new Date(0)).toGMTString();
}
//獲取指定名稱的cookie的值
function getCookie(objName){
  var arrStr=document.cookie.split("; ");
  for(var i = 0;i < arrStr.length;i ++){
    var temp=arrStr[i].split("=");
    if(temp[0]==objName) return unescape(temp[1]);
  } 
}
//新增cookie
function addCookie(objName,objValue,objHours){      
  var str=objName+"="+escape(objValue);
  //為時不設定過期時間,瀏覽器關閉時cookie自動消失
  if(objHours>0){                               
    var date=new Date();
    var ms=objHours*3600*1000;
    date.setTime(date.getTime() + ms);
    str += "; expires=" + date.toGMTString();
  }
  document.cookie = str;
}
//兩個引數,一個是cookie的名子,一個是值
function SetCookie(name,value){
  var Days = 30;//此cookie 將被儲存 30 天
  var exp = new Date();//new Date("December 31, 9998");
  exp.setTime(exp.getTime() + Days*24*60*60*1000);
  document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
//取cookies函式
function getCookie(name){
  var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
  if(arr != null) return unescape(arr[2]); return null;
}
//刪除cookie
function 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();
}

相關文章