天天看點

js中cookie的操作

Cookie是由伺服器端生成,發送給User-Agent(一般是浏覽器),浏覽器會将Cookie的key/value儲存到某個目錄下的文本檔案内,下次請求同一網站時就發送該Cookie給伺服器(前提是浏覽器設定為啟用cookie)。Cookie名稱和值可以由伺服器端開發自己定義,這樣伺服器可以知道該使用者是否是合法使用者以及是否需要重新登入等,伺服器可以設定或讀取Cookies中包含資訊,

借此維護使用者跟伺服器會話中的狀态。

js實作的cookie的設定,擷取,檢測,删除,

重要位置有注釋,

整個頁面代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
	<title>js中cookie的操作</title>
</head>
<body>
<input type="text" id="zhi"/>
   
<input type="button" id="btn" value="點選"/>
   
<input type="button" id="del" value="删除"/>

<script>
	//把通過id擷取對象 封裝了為一個方法
	function $(id)
	{
		return document.getElementById(id);
	}
	//在點選的時候  設定cookie
	$('btn').οnclick=function(){
		var zhi=$('zhi').value;
		//判斷輸入框是否有值
		if(zhi!=''){
			setCookie("name",zhi,365);
			$("zhi").value="";
		}else{
		var user=getCookie("name");
		if (user!="")
			{
			 alert("設定的cookie是:" + user);
			}
		}
	}
	//在點選的時候  删除cookie
	$('del').οnclick=function(){

		if(confirm('删除cookie')){

			delCookie('name');

			alert('已删除cookie');	
		}else{
			return "";
		}
	}
	//設定一個臨時會話cookie
	function setCookie(cname,cvalue,exdays)
	{
		var d = new Date();
		d.setTime(d.getTime()+(exdays*24*60*60*1000));
		var expires = "expires="+d.toGMTString();
		var path=+"path=/";//cookie儲存路徑在根目錄  //通常如果不指定 會預設儲存在目前目錄中
		document.cookie = cname + "=" + cvalue + "; " + expires + ";" + path;
	}
	//擷取設定的會話cookie
	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 "";
	}
	//檢測會話cookie是否設定
	function checkCookie()
	{
		var user=getCookie("name");
		if (user!="")
		  {
		  alert("設定的cookie是:" + user);
		  }
		else
		  {
		  user = prompt("Please enter your name:","");
		  if (user!="" && user!=null)
		    {
		    setCookie("name",user,365);
		    }
		  }
	}
	//删除cookie
	function delCookie(name)
	{
		var exp = new Date();
	    exp.setTime(exp.getTime() - 1);//設定過期時間
	    var cval=getCookie(name);//擷取cookie的值
	    if(cval!=null){
	        document.cookie= name + "="+cval+";expires="+exp.toGMTString();
	    }
	}
</script>
</body>
</html>