今天我们将学习一项很有用而且很有趣的内容:cookies - 这
是用来记录访问过你的网页的人的信息。利用Cookies你能记录
访问者的姓名,并且在该访问者再次访问你的站点时向他发出
热情的欢迎信息。你还可以利用cookie记忆用户端的特点 - 如
果访问者的所接入的网线的速度慢,cookie可以自动告诉你在
给其发送网页的时候只发送尽可能少的图片内容。
只要你在合理的范围内使用cookies(不要用它探询用户的个人
隐私),cookies还是相当实用得。所以我要向你们介绍cookies
的工作原理,但是在正式开始之前,我们先谈两个JavaScript
内容:有趣的字符串处理以及相关数组。
第二页:神奇的字符串处理
为什么必须在开始cookies世界漫游之前必须先学习神奇的字符
串处理呢?因为cookies也是字符串。要保存访问者的信息,你
必须首先建立一个特殊的cookie字符串。然后在访问者又返回
你的站点时读取该信息,而此时你必须对该cookie字符串进行
解码。要生成和解释这些字符串你必须了解JavaScript的字符
串工作原理。所以我们必须先要了解字符串。如果你是一个新
手,你应该先阅读一下上次的javascript教程第2日的内容,一
下是一个例子:
var normal_monkey = "I am a monkey!<br>";
document.writeln("Normal monkey " + normal_monkey);
var bold_monkey = normal_monkey.bold();
document.writeln("Bold monkey " + bold_monkey);
这里的声明:
var bold_monkey = normal_monkey.bold();
和下面对声明是等同的:
var bold_monkey = "<b>" + normal_monkey + "</b>";
第1个版本的声明看起来要简明得多。这里用到了字符串对象中
的bold对象,其他的字符串对象还有indexOf, charAt,
substring, 以及split, 这些方法可以深入字符串的组成结构。
首先我们研究一下indexOf。
indexOf
indexOf用于发现一系列的字符在一个字符串中等位置并告诉你
子字符串的起始位置。如果一个字符串中部包含该子字符串则
indexOf返回returns "-1." 这里是一个例子:
var the_word = "monkey";
让我们从单词 "monkey"开始。
var location_of_m = the_word.indexOf("m");
location_of_m(字母m的位置)将为0,因为字母m位于该字符串
的起始位置。var location_of_o = the_word.indexOf("o");
location_of_o(字母o的位置)将为1。
var location_of_key = the_word.indexOf("key");
location_of_key(key的位置)将为3因为子字符串“key”以字母
k开始,而k在单词monkey中的位置是3。
var location_of_y = the_word.indexOf("y");
location_of_y)字母y的位置)是5。
var cheeky = the_word.indexOf("q");
cheeky值是-1,因为在单词“monkey”中没有字母q。
indexOf更实用之处:
var the_email = prompt("What's your email address?", "");
var the_at_is_at = the_email.indexOf("@");
if (the_at_is_at == -1)
{
alert("You loser, email addresses must
have @ signs in them.");
}
这段代码询问用户的电子邮件地址,如果用户输入的电子邮件
地址中不包含字符 则 提示用户"@你输入的电子邮件地址
无效,电子邮件的地址必须包含字符@。"
charAt
chatAt方法用于发现一个字符串中某个特定位置的字符。这里
是一个例子:
var the_word = "monkey";
var the_first_letter = the_word.charAt(0);
var the_second_letter = the_word.charAt(1);
var the_last_letter = the_word.charAt(the_word.length-1);
the_first_letter(第1个字符)是"m"
the_second_letter(第2个字符)是"o"
the_last_letter(最后一个字符)是 "y"
注意利用字符串的length(长度)属性你可以发现在包含多少个
字符。在本例中,the_word是"monkey",所以the_word.length
是6。不要忘记在一个字符串中第1个字符的位置是0,所以最后
一个字符的位置就是length-1。所以在最后一行中用了
the_word.length-1。
第三页:子字符串
子字符串(substring)和charAt有些象,不同之处在于它能够
从一个单词中抓取整个的子字符串,而不只是字母,这里是其
格式:
var the_substring = the_string.substring(from, to);
"From"指的是子字符串中第1个字母的位置,"to"有点奇特,
它是该子字符串中比最后一个位置大1的位置.使用这种神奇
的方法你可以标记子字符串的起始和结束位置,用"to"的位置
减去"from"的位置就会得出该子字符串的长度:
var the_string = "monkey";
var clergy = the_string.substring(0,4);
var tool = the_string.substring(3,6);
运行该段代码后变量clergy的值为"monk"; 变量tool的值为
"key"。
子字符串常和indexOf一起使用,将字符串分成若干块.例如,
你可以从一个给定的URL中抽取出其域名:
var the_url = prompt("What's the URL?","");
var lead_slashes = the_url.indexOf("//");
var domain_start = lead_slashes + 2;
var without_resource = the_url.substring(domain_start, the_url.length);
var next_slash = without_resource.indexOf("/");
var domain = without_resource.substring(0, next_slash);
这段代码的意思是:如果你输入
"http://www.webmonkey.com/javascript/index.html",则域
名就是"www.webmonkey.com" .如果这个方法对你来说有些麻
烦,我将向你介绍如何使用split方法简化其执行过程.但是首
先我们作一些分析.
基本的技巧是将第1个斜杠和第2个斜杠之间的内容分离出来:
var the_url = prompt("What's the URL?","");
这行代码向用户询问一个URL.假设用户输入了
"http://www.webmonkey.com/javascript/index.html."
var lead_slashes = the_url.indexOf("//");
这行代码确定第一个双斜杠的位置.在本例中lead_slashes
的值是5,因为双斜杠的位置从5开始.
你可能会想,通常德URL都是以http://开始,所以双斜杠的位
置肯定是在5开始,为什么还要加入indexOf这一段多余的代
码呢?但是问题的关键在于你不知道用户在填入URL时是否一定
填入http:,他们也许会不小心多键入了一个空格,也许他们所
键入的URL在一个加密服务器上,其URL是
"https://www.whatever.com/" .在编程你必须预料到种种可能
发生的问题.所以我们必须用indexOf方法确定双斜杠的确切的
起始位置.
var domain_start = lead_slashes + 2;
这行代码用于计算该域名的第1个字母的起始位置.由于这里
有一个双斜杠,所以域名第1个字母的起始位置应该在双斜杠
所在位置加2的位置.
var without_resource = the_url.substring(domain_start, the_string.length);
这段代码将域名起始位置往后的所有字符都提取出来.所以执
行完这行代码后without_resource是
"www.webmonkey.com/javascript/index.html."
var next_slash = without_resource.indexOf("/");
这行代码计算出该字符串中下一个斜杠的位置,而从该字符串
起始位置到这个斜杠之间的内容就是域名.在本例中下一个斜
杠的位置是17。
var domain = without_resource.substring(0, next_slash);
最后一步是提取出该字符串起始位置到下一个斜杠之间的所有
内容.在本例中使得域名等同于"www.webmonkey.com"。
这样做确实很麻烦,利用split方法则可以使该过程容易很多.
第四页:分割方法(splitting method)
你可以使用split方法用限位器来分割一系列的名称,然后将其
放在一个数组中.例如:
var my_friends =
"trixie,moxie,sven,guido,hermes";
var friend_array =
my_friends.split(",");
for (loop=0; loop < friend_array.length;
loop++)
{
document.writeln(friend_array[loop] + " is my
friend.<br>");
}
这段代码将字符串my_friends分割成包含5个元素的数组.
JavaScript可以为你自动建立一个数组,所以你无需使用
new Array().
将字符串分割成数组之后,我们使用了循环语句写出每一个
名称.我们可以利用split方法简化前面所讲到的域名提取:
var the_url = prompt("What's the URL?","");
var first_split = the_url.split("//");
var without_resource = first_split[1];
var second_split = without_resource.split("/");
var domain = second_split[0];
这段代码简化了很多而且也更容易理解.我们来分析一些这段
代码:
var the_url = prompt("What's the URL?","");
提示用户输入一个URL,假设用户输入
"http://www.webmonkey.com/javascript/index.html" .
var first_split = the_url.split("//");
将用户输入的字符串分割成两块:first_split[0]是"http:",
first_split[1]是
"www.webmonkey.com/javascript/index.html."
var without_resource = first_split[1];
提取出数组中的第2个元素,所以现在without_resource是
"www.webmonkey.com/javascript/index.html."
var second_split = without_resource.split("/");
将without_resource分割成3块:www.webmonkey.com,
javascript, 和index.html.现在你可以看到split的用途了吧?
var domain = second_split[0];
现在我们提取出新数组中的第1个元素就可得出域名.
接下来我们将学习相关数组的概念,然后我们就正式开始学习
神奇的cookie.
第五页:相关数组
数组可以使你存储各种元素的列表,而且使你能够访问图象、
表单以及表单元素.在上次的Javascript教程中我讲解了如何
生成和控制按照索引号编排的数组例如:
var an_array = new
Array("hickory","dickory");
var element_one = an_array[0];
var element_two = an_array[1];
an_array[2] = "doc";
这里生成一个新数组,并用两个字符串进行了初始化.第1个
元素可以用其索引号0进行访问,而第2个元素则可以用其索
引号1进行访问an_array[1].你可以通过添加数组索引号加长
数组的长度.在本例中我加入了第3个元素,使其值等于 "doc".
现在该数组中包含"hickory,dickory, doc"3个元素.
相关数组和上面的数组相同,但它不使用数字做索引,而是用
单词来做索引.
var phone_book = new
Array();
phone_book["sleepy"] = "(203) 555-1234";
phone_book["happy"] = "(203) 555-2345";
这段代码生成一个电话号码簿,你输入"happy"就可以访问相应
的电话号码:
var happy_number = phone_book["happy"];
执行下一页的相关数字的例子看看它如何工作,同时再温习一
下javascript中表单的使用方法.
第六页:相关数组的一个例子
电话号码本
Name: Happy Sleepy Sneezy Sleazy Sneery Bleary Tweaked
Number:
这个例子比较复杂,我们来慢慢研究它.首先我们看一看电话
号码簿本身.它在文件头中定义为phone_book,有7条输入项:
var phone_book = new Array(); phone_book["happy"] = "(203) 555-1234"; phone_book["sleepy"] = "(203) 555-2345"; phone_book["sneezy"] = "(203) 555-4321"; phone_book["sleazy"] = "(203) 555-3245"; phone_book["sneery"] = "(203) 555-3213"; phone_book["bleary"] = "(203) 555-2365"; phone_book["tweaked"] = "(203) 555-1664";
每条记录的关键字是小矮人的名字,而每条记录的值就是该小
矮人的电话号码.假设我们需要找到某个小矮人的电话号码,
例如Sneezy的电话号码,我们这样写:
var the_number = phone_book["sneezy"];
现在我们看看这个表单:
<form name="the_form"> <b>Name:</b> <select onChange = "displayNumber(phone_book, this.options[selectedIndex].value);"> <option value="happy">Happy <option value="sleepy">Sleepy <option value="sneezy">Sneezy <option value="sleazy">Sleazy <option value="sneary">Sneery <option value="bleary">Bleary <option value="tweaked">Tweaked </select> <p> <b>Number:</b> <input type="text" name="number_box" value=""> </form>
注意表单和表单内的元素都有名称,这样以来便于我们读取和
写入表单元素.
注意select标签中的onChange处理器的用法:当所选择的选项
变化时,它就调用函数displayNumber,该函数在文件头中已做
了定义.如果我在下拉选单中选择了sneezy,则表达式
this.options [selectedIndex].value 返回"sneezy",如果你
对该部分的内容不熟悉,请先阅读上次的javascript教程-第5日
的内容.
确定了用户所选择的选项之后,我们进入函数displayNumber:
function displayNumber(phone_book, entry) { var the_number = phone_book[entry]; window.document.the_form.number_box.value = the_number; }
它使用了两个参数-一个电话号码簿和一个名称,在函数第1
行中,
var the_number = phone_book[entry];
观察一下电话号码簿上的名字,然后进入下一行,
window.document.the_form.number_box.value = the_number;
填入表单元素的数字命名为number_box.
你可以看到相关数组是将一个字符串连接到另一个字符串的好
办法.你可以利用相关数组将名字连接到电话号码,密码,生
日以及其他各种资料.在之后的课程中我将向你们介绍利用相
关数组可以做的各种有用的技巧.
第七页:介绍cookie
现在你已经掌握了先进的字符串处理和相关数组概念,该是我
们打开神奇的cookie魔瓶的时候了.cookie是记录访问你的站
点的人的信息,它其实驻留在用户的硬盘上,即使用户已经离
开你的站点,cookie在用户的硬盘上仍然存在,如果该用户再
次返回你的站点,则该cookie就会被一起发回到你的服务器中,
便于你统计和处理重复到访者的信息.
但是有一点需要注意:Cookies被引入Netscape 2.0和MSIE 3.0,
但是MSIE 3.0对cookies的应用不是太完善.你可以利用cookies
在别的用户的计算机上保存和读取信息,但却不能将cookie保
存在自己的计算机上,所以给cookie的测试造成一定的困难.
所以如果你使用的是MSIE 3.0,你最好将其升级为MSIE 4.0或
者改用Netscape.
下面我们看一看一个cookie应用的典型例子,我们在一个网页
中设置cookie,然后通过别的网页读取它.在使用该例子的
时候,想想如果没有cookie,你如何做到这一点.
第八页:深入了解cookies
由于cookies牵扯到向用户的硬盘写盘和读取信息,所以就涉及
一个保密性的问题.如果你需要大量什么cookies,你应该阅读
一下Marc Slayton写的cooikies揭密以及重新考察cookies.这
些文章将告诉你cookie的实质和作用范围以及其内在的局限性.
其最重要的局限性在于:不是每个人的浏览器都欢迎cookies.
即便是用户的浏览器欢迎cookies,但用户也有可能拒绝cookies
的访问(大部分人还是欢迎的)每个域名只分配20个cookies,
所以要节省着什么它们.Cookies不得大于4 KB,当然4,000字
节的容量是足够的了.
了解了这些局限性之后我们开始学习如何设置cookies设置一个
基本的cookie很容易.你所需做的只是在一个cookie_name=value
表单中生成一个字符串,然后设置document.cookie属性.唯一
的技巧:cookie值中不能有空格,逗号或分号.好在你无需担
心这些问题,因为有一系列的函数可以帮你对cookies属性编码
和解码:
escape()和unescape().
下面的简单例子中将你的姓名保存为一个cookie:
function setCookie()
{
var
the_name = prompt("What's your name?","");
var the_cookie =
"wm_javascript=username:" + escape(the_name);
document.cookie =
the_cookie;
alert("Thanks, now go to the next
page.");
}
函数中间的两行是关键:
var the_cookie = "wm_javascript=username:" + escape (the_name);
如果我在提示框中输入了"dave thau",该行代码将生成一个字
符串wm_javascript=username:dave%20thau.这就是说我将把
一个名为wm_javascript的cookie保存到硬盘.该cookie的值
是username:dave%20thau - 函数 escape()将"dave" 和"thau"
之间的空格用%20做了替换.
当我们读取cookie时,我们寻找名为wm_javascript的cookie,
然后提取username:dave%20thau,将其用 unescape()解码,去
掉username:.
document.cookie = the_cookie;
cookie现在就设置好了,很简单.下面我们学习如何读取
cookie.
第九页:读取cookies
一旦你在某用户的硬盘上设置了cookie,读取是件很容易的
事.下面是读取cookie范例的代码:
function readCookie()
{
var the_cookie = document.cookie;
var broken_cookie = the_cookie.split(":");
var the_name = broken_cookie[1];
var the_name = unescape(the_name);
alert("Your name is: " + the_name);
}
第1行很重要.当你的浏览器打开一个网页时,它调用任何和
该网页有关的cookie然后将其载入document.cookie属性.
读取cookie的技巧在于从中抽取出你需要的信息.注意在我们
所设置的cookie是这样的:wm_javascript=username:dave%
20thau.在该函数第1行之后的所有用于从该cookie中提取出
用户名(username).
var broken_cookie = the_cookie.split(":");
将cookie在分号处分割成两部分.
var the_name = broken_cookie[1];
抓取分号后面的内容dave%20thau.
var the_name = unescape(the_name);
取消函数escape()的编码替换.在本例中重新用空格替换了%20.
alert("Your name is: " + the_name); 显示你的姓名.
这个例子使用的cookie只保存了很少的信息:用户名,cookie
最多可以保存多达4kb的信息。
第十页:复杂的cookies读取
如果你想让你的cookie包含更多的信息,你可以将cookie的值
设得很长.假设我们要保存某人的姓名,年龄和电话号码:
var the_cookie = "username:thau/age:older than the hills/phone:411";
document.cookie="my_happy_cookie=" + escape(the_cookie);
我用斜杠/来分割属性名称,用分号区别不同的属性名称及其
属性值.斜杠/和分号是不是绝对的选择,你可以使用任何的
字符做分割的标志:
var the_cookie = "username=thau&age=older than the hills&phone=
411";
document.cookie="my_happy_cookie=" + escape(the_cookie);
你可以自行选择限位器.只要你注意在对cookie解码时也使用
同样的限位器即可.
设置复杂的cookie时方法要复杂一些.我们建议你使用相关数
组来保存所有的信息,假设我们将该cookie保存到某人的硬
盘上:
my_happy_cookie=username:thau/age:older than the hills/phone:411
你可以将这些信息放到一个方便的相关数组中:
function readTheCookie(the_info)
{
// load the cookie into a variable and unescape it
var the_cookie = document.cookie;
var the_cookie = unescape(the_cookie);
// separate the values from the cookie name
var broken_cookie = the_cookie.split("=");
var the_values = broken_cookie[1];
// break each name:value pair into an array
var separated_values = the_values.split("/");
// loop through the list of name:values and load
// up the associate array
var property_value = "";
for (loop = 0; loop
如果在你的JavaScript中有上面这段代码,你可以这样调用它:
var cookie_information = new Array();
readTheCookie(cookie_information);
然后你就会正确设置了cookie_information["username"],
cookie_information["age"], 和cookie_information["phone"].
这些看起来可能有些难以理解,但实际上并不是很难.我们一
步步分析:
var the_cookie = document.cookie;
将cookie赋值给一个变量.
var the_cookie = unescape(the_cookie);
取消escape()的编码
var broken_cookie = the_cookie.split("=");
var the_values = broken_cookie[1];
使the_values等同于username:thau/age:older than the hills/phone:411.
var separated_values = the_values.split("/");
生成一个包含3个元素名为separated_values的数组:
separated_values[0] = "username:thau"
separated_values[1] = "age:older than the hills"
separated_values[2] = "phone:411"
for (loop = 0; loop
循环调用separated_values的3个元素.
property_value = separated_values[loop];
提取当前的name:value配对,第1个配对是username:thau.
var broken_info = property_value.split(":");
将该配对分成名为broken_info的数组中的两个元素:
broken_info[0] = "username"
broken_info[1] = "thau"
var the_property = broken_info[0];
第1次经过这个循环是,the_property是"username"
var the_value = broken_info[1];
其值是"thau"
the_info[the_property] = the_value;
这里开始发回相关数组的便捷功能.它使得the_info
["username"] = "thau",所以现在当你需要从cookie中查找
username时你只需:
var the_name = the_info["username"];
每次经过这个循环时,就在the_info中加入一个新元素.循
环到最后时, the_info["username"] = "thau", the_info
["age"] = "old as the hills" ,而 the_info["phone"] = 411.
有些烦琐,但是当你需要从cookie中输出入大量信息时这是一
个很好的办法.当然还有别的办法.
第十一页:读取和编写多重cookies
上一篇中我们学习了如何将大量的学习包含在一个cookie中.
另一种方法是使用多重cookies.
保存多重cookies的方法很直观.每一个cookie都有一个名称.
上一个例子中的cookie的名称是my_happy_cookie,我们可以
这样:
var the_cookie ="my_happy_cookie=happiness_and_joy";
document.cookie =the_cookie;
要保存多重cookie,只需给每个cookie一个不同的名字.如果
你要加入一个新的cookie,设置document.cookie 时并不会删
除前面已经设置了的cookies,所以:
var the_cookie ="my_happy_cookie=happiness_and_joy";
document.cookie = the_cookie;
var another_cookie= "my_other_cookie=more_joy_more_happiness";
document.cookie = another_cookie;
现在你需要访问这两个cookies,有些复杂,所以你需要明了整
个过程.假设你执行了上面的代码,现在想访问
my_happy_cookie.如果你查看document.cookie的内容,你会
看到:
my_happy_cookie=happiness_and_joy;
my_other_cookie=more_joy_more_happiness;
这样很直观,但是如果你想访问某个特定的cookie则有些困难.
下面的代码可以帮助你找出某个特定的cookie:
function WM_readCookie(name)
{
//如果没有cookie则返回false或者取得值并返回该值
if(document.cookie == '')
return false;
else
return
unescape(WM_getCookieValue(name));
}
function WM_getCookieValue(name)
{
// Declare variables.
var firstChar,lastChar;
// Get the entire cookie string.
// (This may have other
name=value pairs in it.)
var theBigCookie = document.cookie;
// Grab
just this cookie from theBigCookie string.
// Find the start of
'name'.
firstChar = theBigCookie.indexOf(name);
// If you found it,
if(firstChar != -1)
{
// skip 'name' and '='.
firstChar +=
name.length + 1;
// Find the end of the value string (i.e. the next
';').
lastChar = theBigCookie.indexOf(';', firstChar);
if(lastChar == -1) lastChar = theBigCookie.length;
// Return the
value.
return theBigCookie.substring(firstChar, lastChar);
} else
{
// If there was no cookie, return false.
return false;
}
}
下面我们将学习一下cookies可以做的真正酷的内容。
第十二页:再次深入了解cookies
现在你已经学会了如何设置和读取基本的cookie.然而基本
的cookie常常在用户关闭他的浏览器时会被自动删除.有时候
这样最好因为通常的域只允许在用户的机器上保留20个cookie.
但是如果你希望将cookie保存在用户的机器上你需要设置一
个cookie失效的时间,它的格式是一种叫做GMT的特殊格式.
例如:
Mon, 27-Apr-1998 00:00:00 GMT
要正确设置GMT不是一件容易的事,你需要计算好某个日期是星
期几.好在Javascript有一个日期的方法叫做toGMTString可以
帮助你.下面是设定远期的某个时间的一个例子:
var the_date = new Date("December 31, 2023");
var the_cookie_date =the_date.toGMTString();
一旦你设置了你的cookie的失效期,你在必须在cookie设置的
前面加入这条信息.因此你的cookie应该如下:
cookie_name=blah_blah;expires=date
通常你只需在cookie字符串中加入expires=date,然后用分号
分割不同的cookie.
下面是一个如何建立有效期直至Mayan日历末尾的函数:
function
setCookie()
{
// get the information
//
var the_name = prompt("What's your name?","");
var the_date = new Date("December 31, 2023");
var the_cookie_date =the_date.toGMTString();
// build and save the cookie
//
var the_cookie = "my_cookie=" + escape(the_name);
the_cookie = the_cookie +";expires=" + the_cookie_date;
document.cookie = the_cookie;
}
最后cookie应该如下所示:
my_cookie=thau;expires=Fri,31-Dec-2023 00:00:00 GMT
设置好cookie之后,它将在用户的机器中国存在直到失效期.
如果你将某个cookie的失效期设置得比当前时间还早,该cookie
实际上不能在用户的机器上存活.
此外,还有两个只要的事项:路径(path)和域(domain)。
第十三页:cookie路径和域
这是掌握cookie最后的一个障碍:缺省情况下cookie只能被在
同一个Web服务器上同一个路径下设置了该cookie的网页读取.
例如,如果在
"http://chimp.webmonkey.com/food/bananas/banana_puree.htm"
有一段Javascript询问了用户的姓名,你可能需要在你的另一
个网页例如主页中访问一个给定的名字.所以你必须设定该
cookie的路径.路径"path"用于设置可以读取一个cookie的最
顶层的目录.将cookie的路径设置为你的网页最顶层的目录可
以让该该目录下的所有网页都能访问该cookie.
方法:在你的cookie中加入path=/; 如果你只想让"food" 目录
中的网页可以使用该cookie,则你加入path=/food;.还有一点:
有些网站有许多小的域名,例如网猴可能还在
"chimp.webmonkey.com," "gorilla.webmonkey.com," 和
"ape.webmonkey.com." 域名下有网页.缺省情况下只有
"chimp.webmonkey.com" 域下的网页可以读取该cookie.如果
你向让"webmonkey.com"下的所有机器都可以读取该cookie,我
们必须在cookie中加入 "domain=webmonkey.com" .
要将一个cookie设置在
"http://chimp.webmonkey.com/food/bananas/banana_puree.htm"
并且让所有网猴的网页都可以利用它,我们可以这样:
function setCookie()
{
var
the_name = prompt("What's your name?","");
var the_cookie =
"cookie_puss=" + escape(the_name) + ";" ;
var the_cookie = the_cookie
+ "path=/;";
var the_cookie = the_cookie + "domain=webmonkey.com;";
document.cookie =
the_cookie;
}
现在我们已经学习完了cookie的内容.希望你能够多加练习。
本文地址:http://com.8s8s.com/it/it7830.htm