`
ethen
  • 浏览: 119818 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java Script 管理cookie方法大全

阅读更多
本文主要是关于用Java Script操作cookie的具体方法,所有内容均是转载,以后就不用到处找了。
设置cookie
每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie:
document.cookie="userId=828";
如果要一次存储多个名/值对,可以使用分号加空格(; )隔开,例如:
document.cookie="userId=828; userName=hulk";
在cookie的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。在cookie的名中做
到这点很容易,但要保存的值是不确定的。如何来存储这些值呢?方法是用escape()函数进行编
码,它能将一些特殊符号使用十六进制表示,例如空格将会编码为 “20%”,从而可以存储于
cookie值中,而且使用此种方案还可以避免中文乱码的出现。例如:
document.cookie="str="+escape("I love ajax");
相当于:
document.cookie="str=I%20love%20ajax";
当使用escape()编码后,在取出值以后需要使用unescape()进行解码才能得到原来的cookie值,
这在前面已经介绍过。
尽管 document.cookie看上去就像一个属性,可以赋不同的值。但它和一般的属性不一样,改变
它的赋值并不意味着丢失原来的值,例如连续执行下面两条语句:
document.cookie="userId=828";
document.cookie="userName=hulk";
这时浏览器将维护两个cookie,分别是userId和userName,因此给document.cookie赋值更像执
行类似这样的语句:
document.addCookie("userId=828");
document.addCookie("userName=hulk");
事实上,浏览器就是按照这样的方式来设置cookie的,如果要改变一个cookie的值,只需重新赋
值,例如:
document.cookie="userId=929";
这样就将名为userId的cookie值设置为了929。
获取cookie的值
下面介绍如何获取cookie的值。 cookie的值可以由document.cookie直接获得:
var strCookie=document.cookie;
这将获得以分号隔开的多个名/值对所组成的字符串,这些名/值对包括了该域名下的所有cookie
。例如:
<script language="JavaScript" type="text/javascript">
<!--
document.cookie="userId=828";
document.cookie="userName=hulk";
var strCookie=document.cookie;
alert(strCookie);
//-->
</script>
图7.1显示了输出的cookie值。由此可见,只能够一次获取所有的cookie值,而不能指定cookie
名称来获得指定的值,这正是处理cookie值最麻烦的一部分。用户必须自己分析这个字符串,来
获取指定的cookie值,例如,要获取userId的值,可以这样实现:
<script language="JavaScript" type="text/javascript">
<!--
//设置两个cookie
document.cookie="userId=828";
document.cookie="userName=hulk";
//获取cookie字符串
var strCookie=document.cookie;
//将多cookie切割为多个名/值对
var arrCookie=strCookie.split("; ");
var userId;
//遍历 cookie数组,处理每个cookie对
for(var i=0;i<arrCookie.length;i++){
             var arr=arrCookie[i].split("=");
             //找到名称为userId的cookie,并返回它的值
             if("userId"==arr[0]){
                    userId=arr[1];
                    break;
             }
}
alert(userId);
//-->
</script>
这样就得到了单个 cookie的值

用类似的方法,可以获取一个或多个cookie的值,其主要的技巧仍然是字符串和数组的相关操作

给cookie设置终止日期
到现在为止,所有的cookie都是单会话cookie,即浏览器关闭后这些cookie将会丢失,事实上这
些cookie仅仅是存储在内存中,而没有建立相应的硬盘文件。
在实际开发中,cookie常常需要长期保存,例如保存用户登录的状态。这可以用下面的选项来实
现:
document.cookie="userId=828; expires=GMT_String";
其中GMT_String是以GMT格式表示的时间字符串,这条语句就是将userId这个cookie设置为
GMT_String 表示的过期时间,超过这个时间,cookie将消失,不可访问。例如:如果要将cookie
设置为10天后过期,可以这样实现:
<script language="JavaScript" type="text/javascript">
<!--
//获取当前时间
var date=new Date();
var expireDays=10;
//将date设置为10天以后的时间
date.setTime(date.getTime()+expireDays*24*3600*1000);
//将userId和userName两个cookie设置为10天后过期
document.cookie="userId=828; userName=hulk; expire="+date.toGMTString();
//-->
</script>
删除cookie
为了删除一个cookie,可以将其过期时间设定为一个过去的时间,例如:
<script language="JavaScript" type="text/javascript">
<!--
//获取当前时间
var date=new Date();
//将date设置为过去的时间
date.setTime(date.getTime()-10000);
//将userId这个cookie删除
document.cookie="userId=828; expire="+date.toGMTString();
//-->
</script>
指定可访问cookie的路径
默认情况下,如果在某个页面创建了一个cookie,那么该页面所在目录中的其他页面也可以访问
该cookie。如果这个目录下还有子目录,则在子目录中也可以访问。例如在
www.xxxx.com/html /a.html中所创建的cookie,可以被www.xxxx.com/html/b.html或
www.xxx.com/ html / some/c.html所访问,但不能被www.xxxx.com/d.html访问。
为了控制cookie可以访问的目录,需要使用 path参数设置cookie,语法如下:
document.cookie="name=value; path=cookieDir";
其中cookieDir表示可访问cookie的目录。例如:
document.cookie="userId=320; path=/shop";
就表示当前cookie仅能在shop目录下使用。
如果要使cookie在整个网站下可用,可以将cookie_dir指定为根目录,例如:
document.cookie="userId=320; path=/";

指定可访问cookie的主机名
和路径类似,主机名是指同一个域下的不同主机,例如:www.google.com和gmail.google.com就
是两个不同的主机名。默认情况下,一个主机中创建的cookie在另一个主机下是不能被访问的,
但可以通过domain参数来实现对其的控制,其语法格式为:
document.cookie="name=value; domain=cookieDomain";
以google为例,要实现跨主机访问,可以写为:
document.cookie="name=value;domain=.google.com";
这样,所有google.com下的主机都可以访问该cookie。

综合示例:构造通用的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("; ");
             for(var i=0;i<arrCookie.length;i++){
                   var arr=arrCookie[i].split("=");
                   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);
              document.cookie=name+"=v; expire="+date.toGMTString();
}
//-->
</script>
转自http://hi.baidu.com/suwey /blog/item/2762a32f6574ab3b1f3089f9.html
分享到:
评论

相关推荐

    java-script读写Cookie例子

    java-script读写Cookie例子

    应用Java Script的Cookie做客户端计数器.pdf

    应用Java Script的Cookie做客户端计数器.pdf

    JavaScript基础&BOM,学习Java第42天

    Java Script由三个主要组成部分:ECMAScript(核心),BOM(浏览器对象模型),DOM(文档对象模型 注:ECMAScript描述了语法、类型、语句、关键字、保留字、运算符和对象。它就是定义了脚本语言的所有属性、方法和...

    javascript实现设置、获取和删除Cookie的方法

    本文实例讲述了javascript实现设置、获取和删除Cookie的方法。分享给大家供大家参考。具体实现方法如下: /* *设置Cookie * * name:cookie所对应的键 * value:cookie所对应的值 * expires:cookie所对应的有效...

    C# javascript 读写Cookie的方法

    第一:写Cookies 代码如下:Response.Cookies[“UserName”].Value=”Guest”; Response.Cookies[“UserName”].Expires=... userName_zhengshu_Cookie.Value = “陈xx”;  HttpCookie userLession_zhengshur_Cook

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

    本文实例讲述了javascript设置和获取cookie的方法。分享给大家供大家参考,具体如下: 1. 设置cookie function setCookie(cookieName,cookieValue,cookieExpires,cookiePath) { cookieValue = escape(cookieValue)...

    用户无法删除的cookie, evercookie.rar

    Evercookie是一个用于向网站标识用户行为的Java Script。Evercookie故名思义可以让Cookie存储在非Cookie目录,例如FlashCookies和HTML5Storage。它的意义在于可以让网站能跟踪用户的上网习惯,即使用户清空了个人...

    asp cookie中文Javascript取得中文cookie

    具体做法:将设置cookie的相关代码改为: Server.URLEncode(“中文”) 将获取cookie的相关JS代码改为: 代码如下: var tmp=[removed].split(“;”)[0].split(“=”)[1];  var name= decodeURIComponent (tmp);  您...

    javascript与cookie 的问题详解

    我也试着找用什么方法能把 cookie 的 domain 信息读取出来,可是很不幸, 没有找到(不知道你有没有什么方法能把 domain 信息给读出来, 如有,请赐教)出现这个问题的场景:刚开始的时候,是想让 本地(localhost.dev.xxx....

    javascript实现获取cookie过期时间的变通方法

    javascript和动态页无法获取cookie过期的时间,过期时间由浏览器管理,javascript和动态页只能设置过期时间,无法通过[removed](javascript)或者Cookie.Expires(asp.net)属性获取到。 代码如下: &lt;&#37;@page...

    javascript操作Cookie(设置、读取、删除)方法详解

    Cookie是客户端存放数据的一种方式,可用来做状态保持。 1.设置Cookie: a.无过期时间:(若不设置过期时间,默认为会话级Cookie,浏览器关闭就会失效) 代码如下: function setCookie(name,value) {  [removed] =...

    evercookie-master.rar

    Evercookie是一个用于向网站标识用户行为的Java Script。Evercookie故名思义可以让Cookie存储在非Cookie目录,例如FlashCookies和HTML5Storage。它的意义在于可以让网站能跟踪用户的上网习惯,即使用户清空了个人...

    浅析javascript操作 cookie对象

    Cookie 对象 是一种以文件(Cookie文件)的形式保存在客户端硬盘的Cookies文件夹中的数据信息(Cookie数据)。Cookie文件夹中的用户数据信息(Cookie数据)。Cookie文件由所访问的Web站点建立,以长久的保存客户端与Web...

    javascript学习笔记(七)利用javascript来创建和存储cookie

    首先看一下基础知识: 1、什么是cookie cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值 2、有关cookie...

    javascript cookie用法基础教程(概念,设置,读取及删除)

    本文实例讲述了javascript cookie用法。分享给大家供大家参考,具体如下: 一、什么是 cookie? cookie 就是页面用来保存信息,比如自动登录、记住用户名等等。 二、cookie 的特点 同个网站中所有的页面共享一套 ...

    javascript创建和存储cookie示例

    什么是cookie?cookie是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。 cookie使用场景:名字cookie当访问者...

    cookie在javascript中的使用技巧以及隐私在服务器端的设置

    读取cookie字符串方法: 代码如下: alert&#40;[removed]&#41;; 一个网站的cookie字符串包含了该站点域名下的所有cookie(javascript 可访问的,不包括 httponly 的cookie ),多个cookie之间用分号和一个空格隔开,...

    javascript操作cookie方法函数集合第1/2页

    解决方案: 在用户浏览页面并进行设置时,将这些设置保存在cookie中,下次访问的时候读取cookie中的设置。 参考下面的脚本: 代码如下: // utility function to retrieve an expiration data in proper format; ...

    javascript cookie基础应用之记录用户名的方法

    本文实例讲述了javascript cookie基础应用之记录用户名的方法。分享给大家供大家参考,具体如下: 前面有一篇关于cookie基础的文章,封装了 cookie.js,下面我们通过一个实例来应用这个 js。 最常见的就是记住用户名...

    javascript cookie操作类的实现代码小结附使用方法

    第一种方法:cookie操作类,代码封装了,下面也有使用方法,大家可以参考下。 代码如下: String.prototype.Trim = function() { return this.replace(/^\s+/g,””).replace(/\s+$/g,””); } function JSCookie() {...

Global site tag (gtag.js) - Google Analytics