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

作者:taozi165 时间:2024-04-22 13:05:08 

本文实例讲述了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程序设计有所帮助。

标签:javascript,cookie
0
投稿

猜你喜欢

  • Python flask框架如何显示图像到web页面

    2022-05-20 00:11:05
  • python多任务及返回值的处理方法

    2023-11-02 14:20:24
  • PHP PDO函数库(PDO Functions)第1/2页

    2024-05-08 09:38:45
  • vue+elementUI实现动态面包屑

    2024-05-02 17:11:02
  • django做form表单的数据验证过程详解

    2023-11-10 12:26:13
  • Python 列表list使用介绍

    2021-01-03 09:37:16
  • Python爬虫之获取心知天气API实时天气数据并弹窗提醒

    2023-04-17 14:40:58
  • Pycharm-community-2020.2.3 社区版安装教程图文详解

    2022-07-02 06:30:00
  • Python中sorted()排序与字母大小写的问题

    2022-08-18 16:23:49
  • Python 判断文件或目录是否存在的实例代码

    2021-08-16 14:44:49
  • 在Python的Django框架中为代码添加注释的方法

    2023-09-25 07:24:21
  • pytorch下大型数据集(大型图片)的导入方式

    2021-01-18 05:30:29
  • JavaScript实现年历效果

    2023-09-10 10:53:26
  • 在python中利用dict转json按输入顺序输出内容方式

    2021-10-26 15:17:23
  • 在Yii框架中使用PHP模板引擎Twig的例子

    2023-11-14 11:30:30
  • Python 中 -m 的典型用法、原理解析与发展演变

    2023-07-09 17:11:40
  • Win10下配置VScode远程开发ssh-remote(免密登录)

    2022-07-17 23:01:13
  • Python基于纹理背景和聚类算法实现图像分割详解

    2023-11-15 20:05:46
  • Python基于requests实现模拟上传文件

    2023-09-30 01:42:05
  • mysql常用命令行操作语句

    2024-01-12 23:51:20
  • asp之家 网络编程 m.aspxhome.com