JS记住用户信息代码
分类:电脑知识 发表于:2010-10-15 19:28:37 评论(4)
本来想对本站中记住用户信息的代码缺陷问题置之不理的。实在是头都给弄晕了,找了很多资料,对于用ASP代码如何把中文写入COOKIE中,各说纷纭,往往都是一长串的代码列出来。先不说看不看得懂,光眼睛一瞄,就晕了大半了。
虽然阿和也觉得小竹子的那个乱码还蛮漂亮的(^_^),不过被旅途兄这么一提,还真是有点不好意思了(-_-)。于是乎,今天在网上瞎逛的时候,就又想起了这个问题。
不过总算皇天不负有心人,终于被阿和整出了另外一个方法。
全部用JS,简单易懂,好上手!o(∩_∩)o 而且还能解决中文乱码的问题,极品,哦耶~!!
//首先定义存、取、删COOKIE的function
function setCookie(name,value)
{
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString();
}
function getCookie(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
function removeCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie=name +"="+cval+";expires="+exp.toGMTString();
}
//然后放置要不要记住信息的复选框
记住我,下次不用输入个人信息
//接着定义提交按钮。这段代码真是。。够直观了!
onClick=
"
if(this.form.SaveCookie.checked){
setCookie(′SaveName′,this.form.name.value);
setCookie(′SaveEmail′,this.form.email.value);
}else{
removeCookie(′SaveName′);
removeCookie(′SaveEmail′);
}
"
>
//最后放置读取COOKIE代码。
//阿和发现不管是之前用的代码,还是现在用的代码,如果不用window.onload()的话,COOKIE就读不出来。之前查过原因的,好像是什么代码执行先后问题还是什么的,忘了。
//另外读取前,阿和加了个判断COOKIE是否为空的代码,这是因为有些文本框是有默认值的。为了在没有COOKIE的情况下,默认值不会被空数据替掉,加个判断可以解决问题。
function window.onload()
{
if (getCookie("SaveName") != null)
document.LYB.name.value=getCookie("SaveName");
if (getCookie("SaveEmail") != null)
document.LYB.email.value=getCookie("SaveEmail");
}
最后终于完美的解决了这个问题,真是开心啊~~~ (*^__^*) 嘻嘻