朱杰兵blog

          jonhney'blog
          posts - 140, comments - 1, trackbacks - 0, articles - 0

          JS讀取cookie(記住賬號密碼)

          Posted on 2015-01-31 13:48 朱杰兵 閱讀(123) 評論(0)  編輯  收藏

          很多登錄功能上都有個“記住密碼”的功能,其實無非就是對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>

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 长宁县| 上高县| 华坪县| 富蕴县| 绍兴县| 温泉县| 祁阳县| 宁城县| 徐闻县| 华亭县| 杭州市| 忻城县| 阿坝县| 六盘水市| 娄烦县| 杭锦旗| 霸州市| 大化| 大连市| 永吉县| 盐池县| 井研县| 灵宝市| 社会| 云龙县| 安福县| 唐山市| 潞西市| 乾安县| 昭觉县| 凌海市| 襄城县| 盈江县| 印江| 嘉善县| 茶陵县| 乌兰浩特市| 思南县| 蒙自县| 桓仁| 海晏县|