Jquery cookie外掛實現原理程式碼解析
阿新 • • 發佈:2020-08-05
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>
除錯:
使用chrome除錯,發現無法實現效果
嘗試獲取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,因此上述例子達不到效果
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。