第十页:复杂的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中输出入大量信息时这是一
个很好的办法.当然还有别的办法.
>>
JavaScript高级教程
第一页
Javascript高级教程-第2日
第二页
神奇的字符串处理
第三页
子字符串
第四页
分割方法(splitting
method)
第五页
相关数组
第六页
相关数组的一个例子
第七页
介绍cookie
第八页
深入了解cookies
第九页
读取cookies
第十页
复杂的cookies读取
第十一页
读取和编写多重cookies
第十二页
再次深入了解cookies
第十三页
cookie路径和域
[
第1课
][第2课][
第3课
][
第4课
][
第5课
]
|