实现的原理?
操作cookie,通过判断是否勾选了记住密码框,设置cookie内容,达到保存用户名和密码的效果。
什么时cookie?
cookie有4kb大小,超出长度会返回空字符串;
cookie存放在客户端,可以方便的修改查看,所以不能用cookie存放重要信息;
cooki生命周期会在关闭浏览器以后结束,如果要在一段事件内使用,我们可以为cookie设置有效时间;
Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于 RFC2109 和 2965 中的都已废弃,最新取代的规范是 RFC6265 [1] 。(可以叫做浏览器缓存)
——引用自百度百科
如何设置、读取、删除cookie?
session是运行在服务器端的,因此我们不能用js直接来设置它;但是cookie是运行在客户端的,我们可以使用js来操作。
cookie的结构:cookie是以键值对保存的,即key=value,它们以“;”进行分隔;
js设置cookie:例如用户名(“tom)的值要保存在cookie中,对应的js代码为document.cookie=“name=”+username;
js读取cookie:
假设cookie中存储的内容为:name=jack;password=123
则在B页面中获取变量username的值的JS代码如下:
var username=document.cookie.split(";")[0].split("=")[1];
js删除cookie:
document.cookie = “username=; expires=Thu, 01 Jan 1970 00:00:00 GMT”;
删除 cookie 非常简单。您只需要设置 expires 参数为以前的时间即可
下面贴出代码:
<body>
<div>
用户名:<input type="text" id="username" value=""><br />
密码: <input type="text" id="password"><br />
<input type="checkbox" id="rember" check="true">记住密码
<button type="submit" id="dl">登陆</button>
</div>
<script>
window.onload = function(){
var name = document.getElementById("username");
var pswd = document.getElementById("password");
var dl = document.getElementById("dl");
var orember = document.getElementById("rember");
// var cuser = document.cookie = "user"+"="+name.value+";";
// var cpswd = document.cookie = "password"+"="+pswd.value+";";
//页面初始化时,如果帐号密码cookie存在则填充
if(getCookie('username')&& getCookie('password')){
name.value = getCookie('username');
pswd.value = getCookie('password');
orember.checked = true;
}
//复选框勾选状态发生改变时,如果未勾选则清除cookie
orember.onchange = function(){
if(!this.checked){
delCookie('username');
delCookie('password');
}
else{
tips.style.display = "black";
}
}
//表单提交事件触发时,如果复选框是勾选状态则保存cookie
dl.onsubmit =function(){
if(remember.checked){
setCookie('username',name.value,7); //保存帐号到cookie,有效期7天
setCookie('password',pswd.value,7); //保存密码到cookie,有效期7天
}
}
};
//设置cookie
function setCookie(name,value,day){
var date = new Date();
date.setDate(date.getDate() + day);
document.cookie = name + '=' + value + ';expires='+ date;
};
//获取cookie
function getCookie(name){
var reg = RegExp(name+'=([^;]+)');
var arr = document.cookie.match(reg);
if(arr){
return arr[1];
}else{
return '';
}
};
//删除cookie
function delCookie(name){
setCookie(name,null,-1);
}
</script>
</body>