在说如何用cookie记录用户名之前,我们先来说说cookie的工作原理:

cookie : 存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来像访问者电脑上存储数据 ;
1.不同的浏览器存放的cookie位置不一样,也是不能通用的 ;
2.cookie的存储是以域名形式进行区分的 ;
3.cookie的数据可以设置名字的;
4.一个域名下存放的cookie的个数是有限制的,不同的浏览器存放的个数不一样 ;
5.每个cookie存放的内容大小也是有限制的,不同的浏览器存放大小不一样 ;
6.我们通过document.cookie来获取当前网站下的cookie的时候,得到的字符串形式的值,他包含了当前网站下所有的cookie。他会把所有的cookie通过一个分号+空格的形式串联起来;
7.如果我们想长时间存放一个cookie。需要在设置这个cookie的时候同时给他设置一个过期的时间 ;
8.cookie默认是临时存储的,当浏览器关闭进程的时候自动销毁;

cookie的存储方式:

  • document.cookie = '名字=值';
  • document.cookie = 'username=win';
  • document.cookie = 'age=23';
  • document.cookie = '名称=值;expires=' + 字符串格式的时间;(给cookie设置过期时间)
  • var oDate = new Date(); (给cookie设置过期时间)
  • oDate.setDate( oDate.getDate() + 5 );(给cookie设置过期时间)
  • alert(typeof oDate.toGMTString()); (把日期对象转成字符串的形式)
  • document.cookie = 'username=win;expires=' + oDate.toGMTString();(给cookie设置成转换后的过期时间)
封装一个 读取Cookie方法的函数:
 function getCookie(key) {
var arr1 = document.cookie.split('; '); (username=win; age=23,把数据从分号开始拆成一个个cookie)
for (var i=0; i<arr1.length; i++) { (循环cookie)
var arr2 = arr1[i].split('='); (username=win,,把数据从等号开始拆分)
if ( arr2[0] == key ) { (判断截取的cookie值是否和key值相等)
return decodeURI(arr2[1]);
}
}
}
封装一个 设置Cookie的函数:
function setCookie(key, value, t) {
var oDate = new Date();
oDate.setDate( oDate.getDate() + t );
document.cookie = key + '=' + value + ';expires=' + oDate.toGMTString();
}
封装一个删除Cookie的函数:
 function removeCookie(key) {
setCookie(key, '', -1);
}
传参运行测试:

setCookie('sex','男', 10););

removeCookie('username');

removeCookie('age');

removeCookie('sex');

完整示例:
 <script>
window.onload = function() {
var oUsername = document.getElementById('username');
var oLogin = document.getElementById('login');
var oDel = document.getElementById('del');
if ( getCookie('username') ) {
oUsername.value = getCookie('username');
}
oLogin.onclick = function() {
alert('登陆成功');
setCookie('username', oUsername.value, 5);
}
oDel.onclick = function() {
removeCookie('username');
oUsername.value = '';
}
}
function getCookie(key) {
var arr1 = document.cookie.split('; '); (username=win; age=23,把数据从分号开始拆成一个个cookie)
for (var i=0; i<arr1.length; i++) { (循环cookie)
var arr2 = arr1[i].split('='); (username=win,,把数据从等号开始拆分)
if ( arr2[0] == key ) { (判断截取的cookie值是否和key值相等)
return decodeURI(arr2[1]);
}
}
}
function setCookie(key, value, t) {
var oDate = new Date();
oDate.setDate( oDate.getDate() + t );
document.cookie = key + '=' + value + ';expires=' + oDate.toGMTString();
}
function removeCookie(key) {
setCookie(key, '', -1);
}
</script>
<body>
<input type="text" id="username" />
<input type="button" value="登陆" id="login" />
<input type="button" value="删除" id="del" />
</body>

分享技术,分享快乐!

cookie记录用户名的更多相关文章

  1. cookie记录用户名和密码

    getAttribute和getParameter的区别: request.getAttribute():是request时设置的变量的值,用request.setAttribute("na ...

  2. dom cookie记录用户名

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 用cookie记住用户名

    有时候,我们在做登陆框时会有个复选框选择请记住我,或者有时候会遇到一些弹出框说下次不再提醒,此功能我们可以用js中的cookie实现此功能 下面记录一下如何实现该功能: 利用cookie记录用户名 1 ...

  4. cookie记录浏览记录

    cookie记录浏览记录 HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在.在HashMap中,key-value总是会当做 ...

  5. cookie记录用户的浏览商品的路径

    在电子商务的网站中,经常要记录用户的浏览路径,以判断用户到底对哪些商品感兴趣,或者哪些商品之间存在关联. 下面将使用cookie记录用户的浏览过的历史页面.该网站将每个页面的标题保存在该页面的$TIT ...

  6. cookie记录横向滚动条位置

    一.Css <style type="text/css"> #x{ width: 100%; white-space: nowrap; overflow-x: scro ...

  7. 通过cookie记录,设置页面访问的跳转页

    通过cookie记录,设置页面访问的跳转页 转载自:http://blog.csdn.net/yixiao_naihe/article/details/26679515. 目的: 1.访问fm.htm ...

  8. cookie记住用户名密码

    <script src="js/jquery.cookie.js" type="text/javascript"></script> $ ...

  9. JS利用cookie记录当前位置实现刷新页面后还可以保持菜单栏的展开或闭合

    代码如下,重点是JS部分的代码(部分样式引用的是Bootstrapt中的):   <style> .sidebar-menu .special{ font-size: 16px; marg ...

随机推荐

  1. Json_异常_net.sf.json.JSONException: JSONObject["solution"] not found.

    net.sf.json.JSONException: JSONObject["solution"] not found. 没有这个元素造成的. 问题代码: JSONObject j ...

  2. jquery checkbox 实现单选

    最近在用javascript的时候发现网上实现checkbox单选的代码都已经过时了. 用着几年前的代码发现根本不行了 原因是jquery api已经更改 http://api.jquery.com/ ...

  3. MySQL MMM 双主在Failover时挂起

    两台MySQL服务器,版本Percona 5.5.35,配置双主,装在Centos 6.4下 Master1  db1,172.21.120.160(真实IP),172.21.120.173(Writ ...

  4. linux和windows下的自动ftp脚本(shell bat)

    一.先来看linux下的: 复制代码 代码如下: #! /bin/bashcd /ftp/CURRENTDATE=` date +%Y%m%d `YESTERDAY=` date -d yesterd ...

  5. DNS-2

    ipconfig 用法: ipconfig [/allcompartments] [/? | /all | /renew [adapter] | /release [adapter] | /renew ...

  6. Linux常用命令小结(续)

    20. mysql mysql --host=127.0.0.1 --port=3306 --database=test --user=test --password=test --default-c ...

  7. struts2 的正则表达式验证不起作用解决办法

    在官网上提供的model为: <field-validator type="regex"> <param name="expression"& ...

  8. mybatis使用generator生成对应的model、mapping配置文件、dao

    http://blog.csdn.net/fengshizty/article/details/43086833 使用时 补充 输入命令:cd d:\generator  敲回车 再输入命令:d: 敲 ...

  9. 浅谈如何使用python抓取网页中的动态数据

    我们经常会发现网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念, 动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到 ...

  10. 创建如下三个类:(People类中的三个方法分别输出一些信息,ChinaPeople 和AmericanPeople类重写父类的三个方法)。

    创建如下三个类:(People类中的三个方法分别输出一些信息,ChinaPeople 和AmericanPeople类重写父类的三个方法). ackage com.chuoji.text01; pub ...