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 相关文章推荐
动态添加js事件实现代码
Mar 12 Javascript
基于jquery的模态div层弹出效果
Aug 21 Javascript
js获取html参数及向swf传递参数应用介绍
Feb 18 Javascript
html的DOM中document对象forms集合用法实例
Jan 21 Javascript
jQuery实现折线图的方法
Feb 28 Javascript
再次谈论Javascript中的this
Jun 23 Javascript
express+mockjs实现模拟后台数据发送功能
Jan 07 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
Sep 14 Javascript
webstorm+vue初始化项目的方法
Oct 18 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
Dec 05 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
Jul 10 Javascript
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
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制作静态网站的模板框架
2006/10/09 PHP
表单复选框向PHP传输数据的代码
2007/11/13 PHP
php上传文件的增强函数
2010/07/21 PHP
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
php自定义apk安装包实例
2014/10/20 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
JavaScript 注册事件代码
2011/01/27 Javascript
javascript 获取图片尺寸及放大图片
2013/09/04 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
2019/10/22 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
python3安装speech语音模块的方法
2018/12/24 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
python实现最速下降法
2020/03/24 Python
python怎么删除缓存文件
2020/07/19 Python
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
结婚典礼证婚词
2014/01/11 职场文书
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
质量月口号
2014/06/20 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python