1. 程式人生 > 程式設計 >Jquery cookie外掛實現原理程式碼解析

Jquery cookie外掛實現原理程式碼解析

Cookie 是由 Web 伺服器儲存在使用者瀏覽器上的小文字檔案,它包含有關使用者的本地終端上的資料。

jQuery提供了一個十分簡單的外掛(名稱也是Cookie)來管理網站的Cookie。

下載地址:http://github.com/carhartl/jquery-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">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="../../scripts/jquery.js" type="text/javascript"></script>
<script src="js/jquery.cookie.js" type="text/javascript"></script>
<script type="text/javascript">
  $(function() {
  	var COOKIE_NAME = 'username';
  	if( $.cookie(COOKIE_NAME) ){
  		$("#username").val( $.cookie(COOKIE_NAME) );
  	}
  	$("#check").click(function(){
  		if(this.checked){
  			$.cookie(COOKIE_NAME,$("#username").val(),{ path: '/',expires: 10 });
  		}else{
  			$.cookie(COOKIE_NAME,null,{ path: '/' });
  		}
  	});
  
  });

</script>
</head>
<body>
  使用者名稱:<input type="text" name="username" id="username" /> <br/>
  <input type="checkbox" name="check" id="check"/>記住使用者名稱
</body>
</html>

Jquery cookie外掛實現原理程式碼解析

除錯:

使用chrome除錯,發現無法實現效果

嘗試獲取cookie檔案也失效

Jquery cookie外掛實現原理程式碼解析

原因:

chrome不支援js在本地操作cookie。據測試,除了chrome瀏覽器外,其他主流瀏覽器(ie、firefox等)都支援js在本地操作cookie。當然部署到伺服器上所有瀏覽器都是支援的。

擴充套件:

操作cookie失效還有一個原因:瀏覽器設定成不支援Cookie。

可以通過以下程式碼測試瀏覽器是否支援Cookie或者Cookie是否被禁用?

var dt = new Date(); 
dt.setSeconds(dt.getSeconds() + 60); 
document.cookie = "cookietest=1; expires=" + dt.toGMTString(); 
var cookiesEnabled = document.cookie.indexOf("cookietest=") != -1; 
if(!cookiesEnabled) { 
	//沒有啟用cookie 
	alert("沒有啟用cookie ");
} else{
	//已經啟用cookie 
	alert("已經啟用cookie ");
}

經測試,chrome的確沒有啟用Cookie,因此上述例子達不到效果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。