博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript操作Cookie详解
阅读量:7098 次
发布时间:2019-06-28

本文共 1756 字,大约阅读时间需要 5 分钟。

hot3.png

Cookie是JavaScript中的一种机制,可以实现严格的跨页面全局变量的要求。

Cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。
在Cookie设置中,用escape()函数进行编码,可避免乱码和特殊字符问题; 当使用escape()编码后,在取出值以后需要使用unescape()进行解码才能得到原来的cookie值。

设置Cookie时可以直接给document.cookie赋值:
    document.cookie="userId=828";
    document.cookie="userName=hulk";
而且后面的值不会覆盖前面的值,它具有一种累加机制。
cookie的值可以由document.cookie直接获得,但这样获取的是所有的cookie值;要通过一指定cookie名称来获得所对应的值,则需做一些处理。

构造通用的cookie处理函数:

  1.添加一个cookie:addCookie(name,value,expireHours)
该函数接收3个参数:cookie名称,cookie值,以及在多少小时后过期。这里约定expireHours为0时不设定过期时间,即当浏览器关闭时cookie自动消失。该函数实现如下:
<script language="JavaScript" type="text/javascript">
<!--
function addCookie(name,value,expireHours){
  var cookieString=name+"="+escape(value);
  //判断是否设置过期时间
  if(expireHours>0){
    var date=new Date();
    date.setTime(date.getTime+expireHours*3600*1000); // 转换为毫秒
    cookieString=cookieString+"; expire="+date.toGMTString();
  }
  document.cookie=cookieString;
}
//-->
</script>
  2.获取指定名称的cookie值:getCookie(name)
该函数返回名称为name的cookie值,如果不存在则返回空,其实现如下:
<script language="JavaScript" type="text/javascript">
<!--
function getCookie(name){
  var strCookie=document.cookie;
  var arrCookie=strCookie.split("; "); // 将多cookie切割为多个名/值对
  for(var i=0;i<arrCookie.length;i++){ // 遍历cookie数组,处理每个cookie对
    var arr=arrCookie[i].split("="); // 找到名称为userId的cookie,并返回它的值
    if(arr[0]==name)
      return arr[1];
  }
  return "";
}
//-->
</script>
  3.删除指定名称的cookie:deleteCookie(name)
该函数可以删除指定名称的cookie,其实现如下:

<script language="JavaScript" type="text/javascript">

<!--
function deleteCookie(name){
  var date=new Date();
  date.setTime(date.getTime()-10000); // 删除一个cookie,就是将其过期时间设定为一个过去的时间
  document.cookie=name+"=v; expire="+date.toGMTString();
}
//-->
</script> 
 

原文链接:

转载于:https://my.oschina.net/moroseyu/blog/51464

你可能感兴趣的文章
基于LVS实现负载均衡
查看>>
系统集成知识点整理(六)人力资源管理
查看>>
httpclient使用
查看>>
开发部署测试经常用到的linux命令
查看>>
使用windows 远程KALI3.0
查看>>
Sqoop 1.4.6 安装
查看>>
mysql数据恢复
查看>>
编码二进制数据和文本互相转换的控件工具Xceed Binary Encoding Library
查看>>
天才人物的最完美范例
查看>>
我的友情链接
查看>>
linux开发笔记
查看>>
新手如何快速入门node.js
查看>>
如何给容器服务的Docker增加数据盘
查看>>
配置WordPress回收站功能
查看>>
我收集的资料网站
查看>>
Java基础-第2天
查看>>
有一种爱叫白头偕老
查看>>
linux返回码 $?
查看>>
jQuery formvalidator插件 API帮助文档
查看>>
debian系统双机heartbat配置
查看>>