Cookie 是由 Web 服務(wù)器保存在用戶瀏覽器上的小文本文件,它包含有關(guān)用戶的本地終端上的數(shù)據(jù)。
jQuery提供了一個(gè)十分簡單的插件(名稱也是Cookie)來管理網(wǎng)站的Cookie。
下載地址:http://github.com/carhartl/jquery-cookie
例子: 當(dāng)在用戶名字段填寫用戶名后,單擊下面的“記住用戶名”復(fù)選框后,再次打開這個(gè)頁面,發(fā)現(xiàn)用戶名字段上已經(jīng)被自動賦值(之前所填寫的用戶名)
<!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> |
調(diào)試:
使用chrome調(diào)試,發(fā)現(xiàn)無法實(shí)現(xiàn)效果
嘗試獲取cookie文件也失效
原因:
chrome不支持js在本地操作cookie。據(jù)測試,除了chrome瀏覽器外,其他主流瀏覽器(ie、firefox等)都支持js在本地操作cookie。當(dāng)然部署到服務(wù)器上所有瀏覽器都是支持的。
擴(kuò)展:
操作cookie失效還有一個(gè)原因:瀏覽器設(shè)置成不支持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{ //已經(jīng)啟用cookie alert("已經(jīng)啟用cookie "); } |
經(jīng)測試,chrome的確沒有啟用Cookie,因此上述例子達(dá)不到效果