惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cybersecurity and Infrastructure Security Agency CISA
月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
量子位
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
小众软件
小众软件
T
Tailwind CSS Blog
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Exploit Database - CXSecurity.com
T
Tenable Blog
博客园 - 叶小钗
宝玉的分享
宝玉的分享
P
Privacy International News Feed
T
Tor Project blog
博客园_首页
AWS News Blog
AWS News Blog
雷峰网
雷峰网
C
Cisco Blogs
Help Net Security
Help Net Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 【当耐特】
T
Threat Research - Cisco Blogs
Last Week in AI
Last Week in AI
K
Kaspersky official blog
人人都是产品经理
人人都是产品经理
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
Schneier on Security
博客园 - Franky
W
WeLiveSecurity
L
LINUX DO - 热门话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Proofpoint News Feed
大猫的无限游戏
大猫的无限游戏
腾讯CDC
L
Lohrmann on Cybersecurity
J
Java Code Geeks
美团技术团队
博客园 - 司徒正美
The Cloudflare Blog
V
V2EX

博客园 - 龍峸.大卫

C#格式化字符串,日期,时间,货币 行动吧站长们,为地震遇难同志哀悼! 穷与富 ASP.NET备忘 - 龍峸.大卫 - 博客园 珊瑚虫IP数据库转 SQL 2005 纯真IP转sql 一个非常实用的javascript读写Cookie函数 - 龍峸.大卫 - 博客园 采用密码加密的javascript字符串加密、解密程序 - 龍峸.大卫 - 博客园 Microsoft Web Application Stress Tool 网站压力测试工具集 网站维护必知:网站压力测试 Jquery的N个插件 CSS的解决IE5/IE5.5/IE6/FF/IE7的兼容性问题(css hack) 鼠标悬停显示图片 客齐集图片鼠标悬停效果 始终固定在左上角的图片 下拉选单图片选择器 带链接的日历 一个简洁的网页日历 经典列表效果
JavaScript操作Cookie详解
龍峸.大卫 · 2008-04-05 · via 博客园 - 龍峸.大卫

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>