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 相关文章推荐
网上应用的一个不错common.js脚本
Aug 08 Javascript
jQuery 表单验证扩展代码(二)
Oct 20 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
Mar 01 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
Dec 19 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
Jan 23 Javascript
jQuery实用技巧必备(中)
Nov 03 Javascript
JavaScript模拟push
Mar 06 Javascript
Bootstrap输入框组件简单实现代码
Mar 06 Javascript
微信小程序开发之入门实例教程篇
Mar 07 Javascript
微信小程序 实现点击添加移除class
Jun 12 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
Sep 24 Javascript
jQuery实现颜色打字机的完整代码
Mar 19 jQuery
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 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
javascript中创建对象的三种常用方法
2010/12/30 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
Python基于property实现类的特性操作示例
2018/06/15 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
pip安装python库的方法总结
2019/08/02 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
远程教育心得体会
2014/01/03 职场文书
课外科技活动总结
2014/08/27 职场文书
综合管理员岗位职责
2015/02/11 职场文书
听证通知书
2015/04/24 职场文书
导游词之山西-五老峰
2019/10/07 职场文书
zabbix监控mysql的实例方法
2021/06/02 MySQL
比较几种Redis集群方案
2021/06/21 Redis
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers