這篇文章主要介紹了JavaScript使用cookie實現記住賬號密碼功能,本文直接給出完整測試代碼,需要的朋友可以參考下
很多登錄功能上都有個“記住密碼”的功能,其實無非就是對cookie的讀取。
下面展示這個功能的代碼,原作者已無法考究。。。。
測試方法:直接輸入賬號密碼,提交后,刷新頁面,再輸入同樣的賬號,就可以顯示
- <!DOCTYPE HTML>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>js COOKIE 記住帳號或密碼</title>
- <script type="text/javascript">
- window.onload=function onLoginLoaded() {
- if (isPostBack == "False") {
- GetLastUser();
- }
- }
- function GetLastUser() {
- var id = "49BAC005-7D5B-4231-8CEA-16939BEACD67";//GUID標識符
- var usr = GetCookie(id);
- if (usr != null) {
- document.getElementById('txtUserName').value = usr;
- } else {
- document.getElementById('txtUserName').value = "001";
- }
- GetPwdAndChk();
- }
- //點擊登錄時觸發客戶端事件
- function SetPwdAndChk() {
- //取用戶名
- var usr = document.getElementById('txtUserName').value;
- alert(usr);
- //將最后一個用戶信息寫入到Cookie
- SetLastUser(usr);
- //如果記住密碼選項被選中
- if (document.getElementById('chkRememberPwd').checked == true) {
- //取密碼值
- var pwd = document.getElementById('txtPassword').value;
- alert(pwd);
- var expdate = new Date();
- expdate.setTime(expdate.getTime() + 14 * (24 * 60 * 60 * 1000));
- //將用戶名和密碼寫入到Cookie
- SetCookie(usr, pwd, expdate);
- } else {
- //如果沒有選中記住密碼,則立即過期
- ResetCookie();
- }
- }
- function SetLastUser(usr) {
- var id = "49BAC005-7D5B-4231-8CEA-16939BEACD67";
- var expdate = new Date();
- //當前時間加上兩周的時間
- expdate.setTime(expdate.getTime() + 14 * (24 * 60 * 60 * 1000));
- SetCookie(id, usr, expdate);
- }
- //用戶名失去焦點時調用該方法
- function GetPwdAndChk() {
- var usr = document.getElementById('txtUserName').value;
- var pwd = GetCookie(usr);
- if (pwd != null) {
- document.getElementById('chkRememberPwd').checked = true;
- document.getElementById('txtPassword').value = pwd;
- } else {
- document.getElementById('chkRememberPwd').checked = false;
- document.getElementById('txtPassword').value = "";
- }
- }
- //取Cookie的值
- function GetCookie(name) {
- var arg = name + "=";
- var alen = arg.length;
- var clen = document.cookie.length;
- var i = 0;
- while (i < clen) {
- var j = i + alen;
- //alert(j);
- if (document.cookie.substring(i, j) == arg) return getCookieVal(j);
- i = document.cookie.indexOf(" ", i) + 1;
- if (i == 0) break;
- }
- return null;
- }
- var isPostBack = "<%= IsPostBack %>";
- function getCookieVal(offset) {
- var endstr = document.cookie.indexOf(";", offset);
- if (endstr == -1) endstr = document.cookie.length;
- return unescape(document.cookie.substring(offset, endstr));
- }
- //寫入到Cookie
- function SetCookie(name, value, expires) {
- var argv = SetCookie.arguments;
- //本例中length = 3
- var argc = SetCookie.arguments.length;
- var expires = (argc > 2) ? argv[2] : null;
- var path = (argc > 3) ? argv[3] : null;
- var domain = (argc > 4) ? argv[4] : null;
- var secure = (argc > 5) ? argv[5] : false;
- document.cookie = name + "=" + escape(value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
- }
- function ResetCookie() {
- var usr = document.getElementById('txtUserName').value;
- var expdate = new Date();
- SetCookie(usr, null, expdate);
- }
- </script>
- </head>
- <body>
- <form id="form1">
- <div> 用戶名:
- <input type="text" ID="txtUserName" onblur="GetPwdAndChk()">
- <input type="password" ID="txtPassword">
- 密碼:
- <input type="checkbox" ID="chkRememberPwd" />
- 記住密碼
- <input type="button" OnClick="SetPwdAndChk()" value="進入"/>
- </div>
- </form>
- </body>
- </html>
新聞熱點
疑難解答
圖片精選