原生js操作cookie


首先每個cookie都是一個名/值對存儲,而cookie字符串以“;”連接多個cookie名/值對,我們需要做的首先將cookie字符串分割成單獨的一個cookie名/值對。

var cookieArray = document.cookie;  //獲取cookie存儲字符串
var arr = cookieArray.split(";");   //將獲得的cookie字符串以;分割開獲得單獨每個cookie名/值對

獲得cookie名對應的值

//假設要獲取的cookie的名字是name,則遍歷數組找到名字所對應的值
for
(var i=0;i<arr.length;i++){
  var arr1 = arr.split("="); //將名/值對以“=”分割開
  if(arr1[0]==name){
    var result = arr1[1]; //如果名為name,則結果result為名對應的值
  } }

設置cookie,設置cookie就是給cookie賦值name,value,days,所對應的含義是名,值,過期時間

//直接設置cookie賦值語句

document.cookie="name=value;expires=GMT_String";

//以函數方式
function
setcookie(name,value,days){ var d= new Date(); d.setTime(d.getTime()+(days*24*60*60*1000)); var expires = d.toGMTString(); document.cookie = name+"="+value+";expires="+expires; }

刪除cookie就是將cookie的國企時間設置為0或者負數或者以前的時間。刪除cokie時可以不指定cookie的值。

function delCookie(name)//刪除cookie
{
   document.cookie = name+"=;expires="+(new Date(0)).toGMTString();
}

完整的例子為

function setCookie(cname,cvalue,exdays){
    var d = new Date();
    d.setTime(d.getTime()+(exdays*24*60*60*1000));
    var expires = "expires="+d.toGMTString();
    document.cookie = cname+"="+cvalue+"; "+expires;
}
function getCookie(cname){
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i].trim();
        if (c.indexOf(name)==0) { return c.substring(name.length,c.length); }
    }
    return "";
}
function checkCookie(){
    var user=getCookie("username");
    if (user!=""){
        alert("歡迎 " + user + " 再次訪問");
    }
    else {
        user = prompt("請輸入你的名字:","");
          if (user!="" && user!=null){
            setCookie("username",user,30);
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM