javascript设置和获取cookie的方法实例详解


Posted in Javascript onJanuary 05, 2016

本文实例讲述了javascript设置和获取cookie的方法。分享给大家供大家参考,具体如下:

1. 设置cookie

function setCookie(cookieName,cookieValue,cookieExpires,cookiePath)
{
  cookieValue = escape(cookieValue);//编码latin-1
  if(cookieExpires=="")
  {
    var nowDate = new Date();
    nowDate.setMonth(nowDate.getMonth()+6);
    cookieExpires = nowDate.toGMTString();
  }
  if(cookiePath!="")
  {
    cookiePath = ";Path="+cookiePath;
  }
  document.cookie= cookieName+"="+cookieValue+";expires="+cookieExpires+cookiePath;
}

2. 获取cookie

function getCookieValue(cookieName)
{
  var cookieValue = document.cookie;
  var cookieStartAt = cookieValue.indexOf(""+cookieName+"=");
  if(cookieStartAt==-1)
  {
    cookieStartAt = cookieValue.indexOf(cookieName+"=");
  }
  if(cookieStartAt==-1)
  {
    cookieValue = null;
  }
  else
  {
    cookieStartAt = cookieValue.indexOf("=",cookieStartAt)+1;
    cookieEndAt = cookieValue.indexOf(";",cookieStartAt);
    if(cookieEndAt==-1)
    {
      cookieEndAt = cookieValue.length;
    }
    cookieValue = unescape(cookieValue.substring(cookieStartAt,cookieEndAt));//解码latin-1
  }
  return cookieValue;
}

例子:

<!doctype html>
<html>
<head>
<title>cookie</title>
<meta charset="utf-8">
<script language="javascript" type="text/javascript">
  //获取cookie
   function getCookieValue(cookieName)
  {
    var cookieValue = document.cookie;
    var cookieStartAt = cookieValue.indexOf(""+cookieName+"=");
    if(cookieStartAt==-1)
    {
      cookieStartAt = cookieValue.indexOf(cookieName+"=");
    }
    if(cookieStartAt==-1)
    {
      cookieValue = null;
    }
    else
    {
      cookieStartAt = cookieValue.indexOf("=",cookieStartAt)+1;
      cookieEndAt = cookieValue.indexOf(";",cookieStartAt);
      if(cookieEndAt==-1)
      {
        cookieEndAt = cookieValue.length;
      }
      cookieValue = unescape(cookieValue.substring(cookieStartAt,cookieEndAt));//解码latin-1
    }
    return cookieValue;
  }
  //设置cookie
  function setCookie(cookieName,cookieValue,cookieExpires,cookiePath)
  {
    cookieValue = escape(cookieValue);//编码latin-1
    if(cookieExpires=="")
    {
      var nowDate = new Date();
      nowDate.setMonth(nowDate.getMonth()+6);
      cookieExpires = nowDate.toGMTString();
    }
    if(cookiePath!="")
    {
      cookiePath = ";Path="+cookiePath;
    }
    document.cookie= cookieName+"="+cookieValue+";expires="+cookieExpires+cookiePath;
  }
  //页面加载时间处理函数
  function window_onload()
  {
    var userNameElem = document.getElementById("userName");//用户名输入框对象
    var passwordElem = document.getElementById("password");//密码输入框对象
    var currUserElem = document.getElementById("currUser");//复选框对象
    var currUser = getCookieValue("currUser");
    if(currUser!=null)
    {
      userNameElem.value=currUser;
      currUserElem.checked = true;
    }
    if(userNameElem.value!="")
    {
      passwordElem.focus();//密码输入框获得焦点
    }
    else
    {
      currUserElem.focus();//用户名输入框获得焦点
    }
  }
  //表单提交处理
  function login()
  {
    var userNameElem = document.getElementById("userName");
    var passwordElem = document.getElementById("password");
    var currUserElem = document.getElementById("currUser");
    if(userNameElem.value=="" || passwordElem.value=="")
    {
      alert("用户名或密码不能为空!");
      if(userNameElem.value=="")
      {
        userNameElem.focus();//用户名输入框获得焦点
      }
      else
      {
        passwordElem.focus();//密码输入框获得焦点
      }
      return false;
    }
    if(currUserElem.checked)
    {
      setCookie("currUser",userNameElem.value,"","");//设置cookie
    }
    else
    {
      var nowDate = new Date();//当前日期
      nowDate.setMonth(nowDate.getMonth()-2);//将cookie的过期时间设置为之前的某个日期
      cookieExpires = nowDate.toGMTString();//过期时间的格式必须是GMT日期的格式
      setCookie("userName","",cookieExpires,"");//删除一个cookie只要将过期时间设置为过去的一个时间即可
    }
    return true;
  }
</script>
<style type="text/css">
  div{
    font-size:12px;
  }
</style>
</head>
<body onload="window_onload()">
<div>
<form id="loginForm" onsubmit="return login()">
用户名:<input type="text" id="userName"><br>
密 码:<input type="password" id="password">
<input type="checkbox" id="currUser">记住用户名<br>
<input type="submit" value="登录">
</form>
</div>
</body>
</html>

注意:

由于google Chrome浏览器为了安全只支持online-cookie,所以在本地测试时是没有效果的,需要上传到服务器试一下。

更多关于JavaScript操作cookie相关内容可查看本站专题:《JavaScript 操作 cookie相关知识汇总》及《jQuery的cookie操作技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript获取FCK编辑器信息的具体方法
Jul 12 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
Aug 18 Javascript
jQuery学习笔记之回调函数
Aug 15 Javascript
React中ES5与ES6写法的区别总结
Apr 21 Javascript
js编写选项卡效果
May 23 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
Oct 31 Javascript
基于three.js编写的一个项目类示例代码
Jan 05 Javascript
5分钟学会Vue动画效果(小结)
Jul 21 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
Feb 11 Javascript
JavaScript迭代器的含义及用法
Jun 21 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
Sep 20 Javascript
javascript简单比较日期大小的方法
Jan 05 #Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 #Javascript
简述jQuery ajax的执行顺序
Jan 05 #Javascript
JavaScript类型系统之正则表达式
Jan 05 #Javascript
jQuery中ajax的load()与post()方法实例详解
Jan 05 #Javascript
jQuery Mobile弹出窗、弹出层知识汇总
Jan 05 #Javascript
AngularJS 使用$sce控制代码安全检查
Jan 05 #Javascript
You might like
用PHP实现的随机广告显示代码
2007/06/14 PHP
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
PDO::commit讲解
2019/01/27 PHP
jQuery each()方法的使用方法
2010/03/18 Javascript
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
jquery中动态效果小结
2010/12/16 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
js style.display=block显示布局错乱问题的解决方法
2016/09/21 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
介绍Python中几个常用的类方法
2015/04/08 Python
python写入xml文件的方法
2015/05/08 Python
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
python环境下安装opencv库的方法
2020/03/05 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
检察机关个人对照检查材料
2014/09/15 职场文书
2014年电厂工作总结
2014/12/04 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书