JavaScript使用cookie实现记住账号密码功能
很多登录功能上都有个“记住密码”的功能,其实无非就是对cookie的读取。
下面展示这个功能的代码,原作者已无法考究。。。。
测试方法:直接输入账号密码,提交后,刷新页面,再输入同样的账号,就可以显示
<!DOCTYPEHTML>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>jsCOOKIE记住帐号或密码</title>
<scripttype="text/javascript">
window.onload=functiononLoginLoaded(){
if(isPostBack=="False"){
GetLastUser();
}
}
functionGetLastUser(){
varid="49BAC005-7D5B-4231-8CEA-16939BEACD67";//GUID标识符
varusr=GetCookie(id);
if(usr!=null){
document.getElementById('txtUserName').value=usr;
}else{
document.getElementById('txtUserName').value="001";
}
GetPwdAndChk();
}
//点击登录时触发客户端事件
functionSetPwdAndChk(){
//取用户名
varusr=document.getElementById('txtUserName').value;
alert(usr);
//将最后一个用户信息写入到Cookie
SetLastUser(usr);
//如果记住密码选项被选中
if(document.getElementById('chkRememberPwd').checked==true){
//取密码值
varpwd=document.getElementById('txtPassword').value;
alert(pwd);
varexpdate=newDate();
expdate.setTime(expdate.getTime()+14*(24*60*60*1000));
//将用户名和密码写入到Cookie
SetCookie(usr,pwd,expdate);
}else{
//如果没有选中记住密码,则立即过期
ResetCookie();
}
}
functionSetLastUser(usr){
varid="49BAC005-7D5B-4231-8CEA-16939BEACD67";
varexpdate=newDate();
//当前时间加上两周的时间
expdate.setTime(expdate.getTime()+14*(24*60*60*1000));
SetCookie(id,usr,expdate);
}
//用户名失去焦点时调用该方法
functionGetPwdAndChk(){
varusr=document.getElementById('txtUserName').value;
varpwd=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的值
functionGetCookie(name){
vararg=name+"=";
varalen=arg.length;
varclen=document.cookie.length;
vari=0;
while(i<clen){
varj=i+alen;
//alert(j);
if(document.cookie.substring(i,j)==arg)returngetCookieVal(j);
i=document.cookie.indexOf("",i)+1;
if(i==0)break;
}
returnnull;
}
varisPostBack="<%=IsPostBack%>";
functiongetCookieVal(offset){
varendstr=document.cookie.indexOf(";",offset);
if(endstr==-1)endstr=document.cookie.length;
returnunescape(document.cookie.substring(offset,endstr));
}
//写入到Cookie
functionSetCookie(name,value,expires){
varargv=SetCookie.arguments;
//本例中length=3
varargc=SetCookie.arguments.length;
varexpires=(argc>2)?argv[2]:null;
varpath=(argc>3)?argv[3]:null;
vardomain=(argc>4)?argv[4]:null;
varsecure=(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":"");
}
functionResetCookie(){
varusr=document.getElementById('txtUserName').value;
varexpdate=newDate();
SetCookie(usr,null,expdate);
}
</script>
</head>
<body>
<formid="form1">
<div>用户名:
<inputtype="text"ID="txtUserName"onblur="GetPwdAndChk()">
<inputtype="password"ID="txtPassword">
密码:
<inputtype="checkbox"ID="chkRememberPwd"/>
记住密码
<inputtype="button"OnClick="SetPwdAndChk()"value="进入"/>
</div>
</form>
</body>
</html>