谁能读取cookie
只有设置cookie的网站才能读取自己的cookie。但是,具体情况会更复杂一些。 1. 让一个页面读取另一个页面设置的cookie
在默认的情况下,只有设置了cookie的网页才能读取该cookie。如果想让一个页面读取另一个页面设置的cookie,必须设置cookie的路径。cookie的路径用于设置能够读取cookie的顶级目录。将这个路径设置为网站的根目录,可以让所有的网页都能互相读取cookie。
为此,需要将path=/;添加到cookie中,如果只想让food目录下的网页读取这
个cookie,要在cookie中添加path=/food;。 2. 处理多个域名
有的网站有许多子域名,不同的子域名不能读取同一个cookie,但是如果向cookie中添加domain=domain_name,则所有域名以domain_name结尾的网页都可以读取这个cookie。
完整的cookie
为cookie添加失效日期、域名和路径会导致cookie变大,下例展示了一个设置所有这 function setCookie() { var the_name=prompt(“What’s your name?”,””); var the_date=new Date(“December 21, 2012”);
var the_cookie=escape(the_name)+”;”;
var the_cookie=the_cookie+”path=/;”;
var the_cookie=the_cookie+”domain=nostarch.com;”;
var the_cookie=the_cookie+”expires=”+the_date.toUTCString()+”;”; document.cookie=”my_cookie=”+the_cookie; }
些变量的函数,从中可以看到设置cookie的完整过程。
设置多个cookie
有时候设置一个cookie是不够用的。要保存多个cookie,只要为不同的cookie起不同的
名字就可以了。为document.cookie设置一个带有新名称的cookie不会删除已存在的cookie,下面是设置两个cookie的代码:
var visitor_cookie=”this_persion=”+escape(“name:thau/occupation:slacker/phone:411”); document.cookie=visitor_cookie;
var purchase_cookie=”purchases=”+escape(“tshirt:1/furble:15/burrito:400”);
document.cookie=purchase_cookie;
这些代码设置了两次document.cookie。看起来好像第二个document.cookie=statement
会重写由第一个语句设置的信息,就好像等号左边是某些对象一样。然而,为document.cookie赋值的过程有点与众不同,只要cookie拥有不同的名称,就可以保存在
document.cookie中
下面我们介绍介个方便的JavaScript库
cookie库
下列代码展示了在ducument.cookie保存多个cookie的情况下,读取其中一个cookie的代码; }
function WM_readCookie(name){ if(document.cookie==''){ } }
return null;
else{
var firstChar,lastChar;
var theBigCookie=document.cookie;
firstChar=theBigCookie.indexOf(name); var NN2Hack =firstChar+name.length;
{
if((firstChar!=-1)&&(theBigCookie.charAt(NN2Hack)=='=')){ firstChar+=name.length+1;
lastChar=theBigCookie.indexOf(\if(lastChar==-1)lastChar=theBigCookie.length;
return unescape(theBigCookie.substring(firstChar,lastChar)); }else{ return false } }
alert(WM_readCookie(\
基于cookie的购物车
可以用cookie存储你的购物信息.代码就不给了,应该不难吧~
第十三章 DHTML
DHTML(DynamicHTML,动态HTML)组合了JavaScript、HTML和CSS(CascadingStyleSheets,层叠样式表),为网页设计者向网页中添加动画效果和交互性提供了难以置信的自由度。DHTML也是Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)的关键组件,
Ajax是一种用于创建完全基于Web的应用程序的技术,我们将在第14~17章中介绍。 如果想学习更多的DHTML的知识,推荐Danny Goodman所著的Dynamic HTML;The Definitive Reference(O’Reilly出版社出版)。 本章主要包括以下内容: ·CSS基础知识
·如何通过JavaScript、HTML和CSS协作实现对象在屏幕上移动的效果 ·如何使用高级事件处理读取键盘和确定用户鼠标的位置 ·如何创建动态下拉菜单
CSS基础
详情查询CSS文档资料。
JavaScript和DHTML
使用JavaScript来操纵div时,DHTML才会动起来
window.getElementById(‘myFirstDiv’).style.visibility=”hidden”; 这行代码取得id为myFirstDiv的元素,然后取得其CSSstyle对象,并将style对象的visibility属性从visible修改为hidden。
可以使用setTimeout()和clearTimeout()方法为页面添加动画;
生成随机数值
Math.random()
会得到一个0~0.999...(即小数点后面的9无限重复)
//得到一个0~9的数
parseInt(Math.random()*10)
改变div的内容
通过设置div的innerHTML属性可以改变div的内容,顾名思义,innerHTML是div内部
的HTML。改变了innerHTML的值即改变了相应的div的内容。 例: