上一页 首页 下一页

JavaScript高级教程

JavaScript高级教程
JavaScript高级教程 - 第二课
MCHWEB

第十页:复杂的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课 ]



上一页 首页 下一页