javascript設定和擷取cookie的方法執行個體詳解,javascriptcookie

來源:互聯網
上載者:User

javascript設定和擷取cookie的方法執行個體詳解,javascriptcookie

本文執行個體講述了javascript設定和擷取cookie的方法。分享給大家供大家參考,具體如下:

1. 設定cookie

function setCookie(cookieName,cookieValue,cookieExpires,cookiePath){  cookieValue = escape(cookieValue);//編碼latin-1  if(cookieExpires=="")  {    var nowDate = new Date();    nowDate.setMonth(nowDate.getMonth()+6);    cookieExpires = nowDate.toGMTString();  }  if(cookiePath!="")  {    cookiePath = ";Path="+cookiePath;  }  document.cookie= cookieName+"="+cookieValue+";expires="+cookieExpires+cookiePath;}

2. 擷取cookie

function getCookieValue(cookieName){  var cookieValue = document.cookie;  var cookieStartAt = cookieValue.indexOf(""+cookieName+"=");  if(cookieStartAt==-1)  {    cookieStartAt = cookieValue.indexOf(cookieName+"=");  }  if(cookieStartAt==-1)  {    cookieValue = null;  }  else  {    cookieStartAt = cookieValue.indexOf("=",cookieStartAt)+1;    cookieEndAt = cookieValue.indexOf(";",cookieStartAt);    if(cookieEndAt==-1)    {      cookieEndAt = cookieValue.length;    }    cookieValue = unescape(cookieValue.substring(cookieStartAt,cookieEndAt));//解碼latin-1  }  return cookieValue;}

例子:

<!doctype html><html><head><title>cookie</title><meta charset="utf-8"><script language="javascript" type="text/javascript">  //擷取cookie   function getCookieValue(cookieName)  {    var cookieValue = document.cookie;    var cookieStartAt = cookieValue.indexOf(""+cookieName+"=");    if(cookieStartAt==-1)    {      cookieStartAt = cookieValue.indexOf(cookieName+"=");    }    if(cookieStartAt==-1)    {      cookieValue = null;    }    else    {      cookieStartAt = cookieValue.indexOf("=",cookieStartAt)+1;      cookieEndAt = cookieValue.indexOf(";",cookieStartAt);      if(cookieEndAt==-1)      {        cookieEndAt = cookieValue.length;      }      cookieValue = unescape(cookieValue.substring(cookieStartAt,cookieEndAt));//解碼latin-1    }    return cookieValue;  }  //設定cookie  function setCookie(cookieName,cookieValue,cookieExpires,cookiePath)  {    cookieValue = escape(cookieValue);//編碼latin-1    if(cookieExpires=="")    {      var nowDate = new Date();      nowDate.setMonth(nowDate.getMonth()+6);      cookieExpires = nowDate.toGMTString();    }    if(cookiePath!="")    {      cookiePath = ";Path="+cookiePath;    }    document.cookie= cookieName+"="+cookieValue+";expires="+cookieExpires+cookiePath;  }  //頁面載入時間處理函數  function window_onload()  {    var userNameElem = document.getElementById("userName");//使用者名稱輸入框對象    var passwordElem = document.getElementById("password");//密碼輸入框對象    var currUserElem = document.getElementById("currUser");//複選框對象    var currUser = getCookieValue("currUser");    if(currUser!=null)    {      userNameElem.value=currUser;      currUserElem.checked = true;    }    if(userNameElem.value!="")    {      passwordElem.focus();//密碼輸入框獲得焦點    }    else    {      currUserElem.focus();//使用者名稱輸入框獲得焦點    }  }  //表單提交處理  function login()  {    var userNameElem = document.getElementById("userName");    var passwordElem = document.getElementById("password");    var currUserElem = document.getElementById("currUser");    if(userNameElem.value=="" || passwordElem.value=="")    {      alert("使用者名稱或密碼不可為空!");      if(userNameElem.value=="")      {        userNameElem.focus();//使用者名稱輸入框獲得焦點      }      else      {        passwordElem.focus();//密碼輸入框獲得焦點      }      return false;    }    if(currUserElem.checked)    {      setCookie("currUser",userNameElem.value,"","");//設定cookie    }    else    {      var nowDate = new Date();//當前日期      nowDate.setMonth(nowDate.getMonth()-2);//將cookie的到期時間設定為之前的某個日期      cookieExpires = nowDate.toGMTString();//到期時間的格式必須是GMT日期的格式      setCookie("userName","",cookieExpires,"");//刪除一個cookie只要將到期時間設定為過去的一個時間即可    }    return true;  }</script><style type="text/css">  div{    font-size:12px;  }</style></head><body onload="window_onload()"><div><form id="loginForm" onsubmit="return login()">使用者名稱:<input type="text" id="userName"><br>密 碼:<input type="password" id="password"><input type="checkbox" id="currUser">記住使用者名稱<br><input type="submit" value="登入"></form></div></body></html>

注意:

由於google Chrome瀏覽器為了安全只支援online-cookie,所以在本地測試時是沒有效果的,需要上傳到伺服器試一下。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.