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中提取多段信息稍微困难一点,可以使用“关联数组”中介绍的方法来保存这些信息:例