JavaScript语言 - 图文

2025/5/5 6:00:34

matches[1]=”dave_thau”, matches[2]=”hotmail”, matches[3]=”com”。

第十二章 通过cookie保存访客信息

什么是cookie

Cookie是网站在访客硬盘上保存的少量信息。

在你自己的计算机中可以找到cookie,对于Netscape是cookie.txt文件,对于IE则是

Cookie文件夹。无论是文件还是文件夹中,你都会看到一长列站点名称,每个站点名称都是一个文本字符串。处于效率和保密的考虑,其中的多数站点文本都是压缩至可能是加密的格式。通过下面的代码,你可以找一找自己查看过的网站,看看它们是否在你的计算机中保存了cookie,为此,在浏览器中输入下面的代码: javascript:alert(documet.cookie); 通过上面的代码,你会发现因特网上的几乎每个网站都在以这种或那种方式在使用cookie。

cookie能做什么,不能做什么

因为cookie涉及到访客的硬盘中写入或从中读取信息,支持cookie的浏览器要处理许

多安全问题,从而导致了cookie会存在很多限制。最重要的问题是: ·并非所有人都在使用支持cookie的浏览器

·并非所有支持cookie浏览器的人,都会启用cookie。

·每个域名也许只能保存20个cookie!!!!!!!!!!!!!?????????也许????? ·每个域名能够通过cookie保存的信息量不超过4KB。也就是只能保存4000个字符 ·一个网站只能设置和读取它自己的cookie

设置cookie

设置一个基本的cookie很简单,需要以cookie_name=value的格式创建一个字符串,然后将document.cookie属性设置为该字符串。唯一的窍门就是cookie值中不能包含空格/逗号或分号。但是,escape()和unescape()函数可以对cookie进行编码和解码,因此对这个限制无须担心。 javascript:alert(document.cookie) function setCookie(){

var the_name=prompt(\

var the_cookie=\

//escape()函数会替换cookie无法处理额字符。例如输入了dave thau,这行代码会创建字符串userNmae=dave thau。其中的百分比符号和20替换了dave和thau之间的空格。 document.cookie=the_cookie; //要确认自己设置了cookie,可以在浏览器地址栏中输入cookie查看代码。。失败~

alert(\}

读取cookie

读取保存到访客硬盘上的cookie也相当容易:如下:

//无论你什么时候通过浏览器打开一个网页,浏览

function readCookie(){

var the_cookie=document.cookie;

器都会读取相应网站保存在你计算机中的cookie,并载入到document.cookie属性中。 var broken_cookie=the_cookie.split(\ }

var the_name1=broken_cookie[1];

var the_name2=unescape(the_name1); alert(\

读取cookie的技巧体现在如何只从中读取你想要的信息

注意:

如果你在运行这里的例子时遇到了JavaScript错误,请在运行例子中的代码重写已有的

cookie之后退出浏览器,因为cookie中可以保存多个值。本章的这些例子还需要使用追加的——也更复杂的——代码才能将不同的cookie值分开。在“设置对个cookie”中,我们会介绍读取Javascript设置cookie的更多可靠的方式。

重置cookie

重置(修改)cookie,就是将cookie的名字设置为其他值。

设置多段信息

向cookie中写入多段信息也不成问题:

var the_cookie=”username:thau/age:just a tyke/phone:411”;

dcument.cookie=”my_cookie=”+escape(the_cookie);

通过斜杠分隔属性(username、age、和phone),用冒号区别属性中的名称和值

例:

(usernmae:thau和phone:411)。斜杠和冒号是任选的,可以使用任何符号——只要保持一致性即可。

但要从cookie中提取多段信息稍微困难一点,可以使用“关联数组”中介绍的方法来保存这些信息:例

设置cookie的有效时间

到目前为止,我们创建的cookie在用户退出浏览器时就会被删除。如果想让cookie在用户退出浏览器后仍然保留在它的硬盘上,就必须以UTC格式设置失效日期。例:

Sun, 12 Jan 1992 00:00:00 UTC

是以UTC时间表示的2001:A Space Odysse(2001 太空漫游)中智能计算机HAL9000的生日 注意: UTC事件是英格兰格林威治皇家天文台的事件。美国伊利诺伊州Urbana(HAL的出生地),比格林威治时间晚6小时,因此这里的时间实际上是其本地时间1月11日下午6点。 UTC格式有时会很麻烦,特别是需要在知道某一天是星期几的时候。好在,JavaScript的日期方法toUTCString()会将简单格式的日期转换为UTC格式的日期。下面是设置相对较远的未来时间的例子: var the_date = new Date(“Document 21, 2012”); var the_cookie_date=the_date.toUTCString();

注意:

JavaScript1.3之前版本中使用的日期字符串格式,用连字符而不是空格将日,月和年分

开,并且以时间后面的字母GMT表示Greenwich Mean Time(格林威治标准时间)。而不是toUTCString()方法,虽然toGMTString()方法仍然可以使用,但UTC是标准

要设置cookie何时失效,必须要给cookie添加终止日期,即向字符串中添加expires=date,并用分号与其他cookie信息分隔开: cookie_name=whatever;expires = date

function setCookie() {

var the_name=prompt(\ var the_date=new Date(\ var the_cookie_date=the_date.toUTCString();

var the_cookie=\ the_cookie=the_cookie+\ document.cookie=the_cookie; alert(document.cookie); }


JavaScript语言 - 图文.doc 将本文的Word文档下载到电脑
搜索更多关于: JavaScript语言 - 图文 的文档
相关推荐
相关阅读
× 快捷下载通道(下载后可以自由复制和排版)

开通会员免费下载

开通会员后百万份文档资料免费自由复制和下载,是您最优的选择,赶快来试试吧!

单篇下载:10元 点击下载

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219