JavaScript使用cookie实现记住账号密码功能


Posted in Javascript onApril 27, 2015

很多登录功能上都有个“记住密码”的功能,其实无非就是对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>
Javascript 相关文章推荐
jquery实现固定顶部导航效果(仿蘑菇街)
Mar 21 Javascript
Jquery通过Ajax访问XML数据的小例子
Nov 18 Javascript
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
JQuery实现动态表格点击按钮表格增加一行
Aug 24 Javascript
jquery使用hide方法隐藏指定id的元素
Mar 30 Javascript
jQuery easyui刷新当前tabs的方法
Sep 23 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
Mar 30 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
Dec 14 Javascript
解决vue路由后界面没有变化,但是链接有的问题
Sep 01 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
Apr 12 Javascript
关于Node.js中频繁修改代码重启服务器的问题
Oct 15 Javascript
解决Element中el-date-picker组件不回填的情况
Nov 07 Javascript
使用console进行性能测试
Apr 27 #Javascript
浅谈javascript实现八大排序
Apr 27 #Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
Apr 27 #Javascript
jQuery插件Tmpl的简单使用方法
Apr 27 #Javascript
javascript关于运动的各种问题经典总结
Apr 27 #Javascript
分享9点个人认为比较重要的javascript 编程技巧
Apr 27 #Javascript
javascript+html5实现仿flash滚动播放图片的方法
Apr 27 #Javascript
You might like
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
vue.js封装switch开关组件的操作
2020/10/26 Javascript
微信小程序canvas实现签名功能
2021/01/19 Javascript
python进阶教程之文本文件的读取和写入
2014/08/29 Python
python对字典进行排序实例
2014/09/25 Python
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
使用Python的Twisted框架构建非阻塞下载程序的实例教程
2016/05/25 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
5s推行计划书
2014/05/06 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
整改通知书
2015/04/20 职场文书
幼儿园开学温馨提示
2015/07/15 职场文书
幼儿园教师教育随笔
2015/08/14 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电