JavaScript操作cookie的一个小小失误
2012-12-24 23:21
211 查看
最近在做一个基于SSH的网站。其中有一个登录模块,需要实现记住密码的功能。
就是在输入用户名的时候,如果该用户的密码被记住过,则在输完用户名后(当焦点离开时自动填充密码)
于是马上想到了Cookie技术。
由于需要在页面中显示指定用户保存的密码,因此需要和JavaScript打交道。
查阅了相关资料,发现了JavaScript也支持Cookie。
核心内容是document.cookie
因为cookie存储的是许多键值对(key=value),每个键值对由一个分号隔开。
于是通过split(";")函数将cookie对拆分成键值对数组。再利用split("=")函数将键值对拆分成key和value,再进行业务逻辑。
本来一切都很顺利的。结果执行到这一步时,被堵了很久。
这里userName为用户输入的用户名
elements[0]为cookie中所有键值对的key值。
elements[1]为cookie中所有键值对的value值。
这里的业务逻辑为:
后面测试发现该if中的表达式始终为false。
于是我利用alert()函数打印它们的值。
这里的输出是tester,tester。
很迷惑,难道是电脑傻叉掉了?明明是相等的啊。难道要用 三个等于号(===),或者要用什么方法(例如equals()),结果还是不行。
后面将值打印到html里面(这样就可以用鼠标拖蓝了,在alert框是做不到的)。发现分号后面居然还有一个空格!!!
原来cookie的格式是这样的(为了区分清楚,用下划线替代空格) user=benson;_age=18;_date=2012;_school=hvd
所以以后遇到这种问题,即明明看起来应该是一样的,结果判断始终为false,这个时候,就要考虑是否是因为有多余的空格原因引起的,毕竟空格是隐形的杀手!
就是在输入用户名的时候,如果该用户的密码被记住过,则在输完用户名后(当焦点离开时自动填充密码)
于是马上想到了Cookie技术。
由于需要在页面中显示指定用户保存的密码,因此需要和JavaScript打交道。
查阅了相关资料,发现了JavaScript也支持Cookie。
核心内容是document.cookie
因为cookie存储的是许多键值对(key=value),每个键值对由一个分号隔开。
于是通过split(";")函数将cookie对拆分成键值对数组。再利用split("=")函数将键值对拆分成key和value,再进行业务逻辑。
本来一切都很顺利的。结果执行到这一步时,被堵了很久。
这里userName为用户输入的用户名
elements[0]为cookie中所有键值对的key值。
elements[1]为cookie中所有键值对的value值。
这里的业务逻辑为:
if(userName == elements[0]) { document.getElementsById("password").value = elements[1]; break; }
后面测试发现该if中的表达式始终为false。
于是我利用alert()函数打印它们的值。
alert(userName + "," + elements[0]);
这里的输出是tester,tester。
很迷惑,难道是电脑傻叉掉了?明明是相等的啊。难道要用 三个等于号(===),或者要用什么方法(例如equals()),结果还是不行。
后面将值打印到html里面(这样就可以用鼠标拖蓝了,在alert框是做不到的)。发现分号后面居然还有一个空格!!!
原来cookie的格式是这样的(为了区分清楚,用下划线替代空格) user=benson;_age=18;_date=2012;_school=hvd
所以以后遇到这种问题,即明明看起来应该是一样的,结果判断始终为false,这个时候,就要考虑是否是因为有多余的空格原因引起的,毕竟空格是隐形的杀手!
相关文章推荐
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- JavaScript 操作 Cookie
- javascript实现操作cookie实现的可记忆菜单
- 对cookie的设置、获取、清除操作,封装到一个Cookie对象中
- javascript 操作 cookie 【转】
- JavaScript 实例:创建一个欢迎 cookie
- 用javascript在客户端删除某一个cookie键值对
- JavaScript 操作 Cookie
- JavaScript操作Cookie方法实例分析
- Javascript Cookie读写删除操作的函数
- JavaScript 对Cookie 操作的封装小结
- 详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
- javascript和Asp.net互相操作cookie
- javascript操作cookie (又一篇)
- 操作Cookie的一个陷阱服务器端获取不了maxAge或其它属性
- javascript 中Cookie读、写与删除操作
- 一个javascript的Cookie读写删的通用代码
- javascript操作cookie
- JavaScript操作cookie
- JavaScript操作Cookie 插件