使用瀏覽器的內(nèi)部對(duì)象系統(tǒng), 可實(shí)現(xiàn)與HTML文檔進(jìn)行交互。它的作用是將相關(guān)元素組織包裝起來(lái),提供給程序設(shè)計(jì)人員使用,從而減輕編程人的勞動(dòng),提高設(shè)計(jì)Web頁(yè)面的能力。

一、瀏覽器對(duì)象層次及其主要作用
除了前面提到過(guò)的文檔document對(duì)象外,Navigator瀏覽器中還提供了窗口(Window)對(duì)象以及歷史(History)和位置(Location)對(duì)象。
瀏覽器對(duì)象(Navigator)
提供有關(guān)瀏覽器的信息
窗口對(duì)象(Windows)
Window對(duì)象處于對(duì)象層次的最頂端,它提供了處理Navigator窗口的方法和屬性。
位置對(duì)象(Location)
Location對(duì)象提供了與當(dāng)前打開(kāi)的URL一起工作的方法和屬性,它是一個(gè)靜態(tài)的對(duì)象。
歷史對(duì)象(History)
History對(duì)象提供了與歷史清單有關(guān)的信息。
文檔對(duì)象(Document)
document對(duì)象包含了與文檔元素(elements)一起工作的對(duì)象,它將這些元素封裝起來(lái)供編程人員使用。
編程人員利用這些對(duì)象,可以對(duì)WWW瀏覽器環(huán)境中的事件進(jìn)行控制并作出處理。在JavaScript中提供了非常豐富的內(nèi)部方法和屬性,從而減輕了編程人員的工作,提高編程效率。這正是基于對(duì)象與面向?qū)ο蟮母緟^(qū)別所在。在這些對(duì)象系統(tǒng)中,文檔對(duì)象屬于非常重要的,它位于最低層,但對(duì)于我們實(shí)現(xiàn)Web頁(yè)面信息交互起作關(guān)鍵作用。因而它是對(duì)象系統(tǒng)的核心部分。

二、文檔對(duì)象功能及其作用
在Navigator瀏覽器中,document文檔對(duì)象是核心是,同時(shí)也是最重要的。見(jiàn)表6-1所示。
Links
Anchor
Form
Method
Prop
鏈接對(duì)象
錨對(duì)象
窗體對(duì)象
方法
對(duì)象
表6-1 document對(duì)象

從表6-1中可以看出,document對(duì)象的主要作用就是把這些基本的元素(如links,anchor等)包裝起來(lái),提供給編程人員使用。從另一個(gè)角度看,document對(duì)象中又是由屬性和方法組成。

1、document中三個(gè)主要的對(duì)象
在document中主要有:links,anchor,form等三個(gè)最重要的對(duì)象:
(1)anchor錨對(duì)象:
anchor對(duì)象指的是<A Name=...> </A>標(biāo)識(shí)在HTML源碼中存在時(shí)產(chǎn)生的對(duì)象。它包含著文檔中所有的anchors信息。
(2)鏈接links對(duì)象
link對(duì)象指的是用<A Href=...> </A>標(biāo)記的連接一個(gè)超文本或超媒體的元素作為一個(gè)特定的URL。
(3)窗體(Form)對(duì)象
窗體對(duì)象是文檔對(duì)象的一個(gè)元素,它含有多種格式的對(duì)象儲(chǔ)存信息,使用它可以在JavaScript腳本中編寫(xiě)程序進(jìn)行文字輸入,并可以用來(lái)動(dòng)態(tài)改變文檔的行為。通過(guò)document. Forms[]數(shù)組來(lái)使得在同一個(gè)頁(yè)面上可以有多個(gè)相同的窗體,使用forms[]數(shù)組要比使用窗體名字要方便得多。
例:下面就是一個(gè)使用窗體數(shù)組和窗體名字的例子。該程序使得兩個(gè)窗體中的字段內(nèi)容保持一致。
Test6_1.htm
<Html>
<head>
</head>
<body>
<form >
<input type=text onChange="document.my.elements[0].value=this.value;" >
</form>
<form NAME="my">
<input type=text onChange="document.forms[0].elements[0].value=this.value;">
</form>
</body>
</html>
其中用了OnChnge事件(當(dāng)窗體內(nèi)容改變時(shí)激發(fā))。第一個(gè)使用窗體名字標(biāo)識(shí)my,第二個(gè)使用窗體數(shù)組Forms[]。其效果是一致。

2、文檔對(duì)象中的attribute屬性
document對(duì)象中的attribute屬性,主要用于在引用Href標(biāo)識(shí)時(shí),控制著有關(guān)顏色的格式和有關(guān)文檔標(biāo)題、文檔原文件的URL以及文檔最后更新的日期。這部分元素的主要含義如下:
(1)鏈接顏色:alinkcolor
這個(gè)元素主要用于,當(dāng)選取一個(gè)鏈接時(shí),鏈接對(duì)象本身的顏色就按alinkcolo r指定改變。
(2)鏈接顏色:linkcolor
當(dāng)用戶使用<A Href=...> Text string </A>鏈接后,Textstring的顏色就會(huì)按Linkcolor所指定的顏色更新。
(3)瀏覽過(guò)后的顏色:VlinkColor
該屬性表示的是已被瀏覽存儲(chǔ)為已瀏覽過(guò)的鏈接顏色。
(4)背景顏色:bgcolor
該元素包含文檔背景的顏色。
(5)前景顏色:Fgcolor
該元素包含HTML文檔中文本的前景顏色。

3、文檔對(duì)象的基本元素
(1)窗體屬性:
窗體屬性是與HTML文檔中<Form>...</Form>相對(duì)應(yīng)的一組對(duì)象在HTML文檔所創(chuàng)建的窗體數(shù),由length指定。通過(guò)document.forms.length反映該文檔中所創(chuàng)建的窗體數(shù)目。
(2)錨屬性:anchors
該屬性中,包含了HTML文檔的所有<A> </A>標(biāo)記為Name=...的語(yǔ)句標(biāo)識(shí)。所有“錨”的數(shù)目保存在document.anchors.length中。
(3)鏈接屬性:links
鏈接屬性是指在文檔中<A>...</A>的由Href=...指定的數(shù)目,其鏈接數(shù)目保存在document.links.length中。

三、范例
例1:下面我們通過(guò)一個(gè)例子來(lái)說(shuō)明文檔對(duì)象的綜合應(yīng)用。輸出結(jié)果見(jiàn)圖6-2所示。
Test6_2.htm
<html>
<head>
</HEAD>
<BOdy>
<Form Name="mytable">
請(qǐng)輸入數(shù)據(jù):
<Input Type="text" Name="text1" Value="">
</Form>
<A name="Link1" href="test31.htm">鏈接到第一個(gè)文本</a><br>
<A name="Link2" href="test32.htm">鏈接到第二個(gè)文本</a><br>
<A name="Link2" href="test33.htm">鏈接到第三個(gè)文本</a><br>
<A href="#Link1">第一錨點(diǎn)</a>
<A href="#Link2">第二錨點(diǎn)</a>
<A Href="#Link3">第三錨點(diǎn)</a>
<BR>
<Script Language="JavaScript">
document.write("文檔有"+document.links.length+"個(gè)鏈接"+"<br>");
document.write("文檔有"+document.anchors.length+"個(gè)錨點(diǎn)"+"<br>");
document.write("文檔有"+document.forms.length+"個(gè)窗體");
</script>
</body>
</HTML>

 
圖6-2


例子2:下列程序隨機(jī)產(chǎn)生每日一語(yǔ)。
test6_3.html
<HTML>
<HEAD>
<script Language="JavaScript">
<!--
tips = new Array(6);
tips[0]="每日一語(yǔ)(1)";
tips[1]="每日一語(yǔ)(2)";
tips[2]="每日一語(yǔ)(3)";
tips[3]="每日一語(yǔ)(4)";
tips[4]="每日一語(yǔ)(5)";
tips[5]="每日一語(yǔ)(6)";
index = Math.floor(Math.random() * tips.length);
document.write("<FONT SIZE=8 COLOR=DARKBLUE>" + tips[index]+"</FONT>");
</Script>
</HEAD>
</BODY>
</HTML>
輸出結(jié)果見(jiàn)圖6-3所示。

 
圖6-3

本講主要介紹了JavaScript對(duì)象系統(tǒng)的使用方法,其中重點(diǎn)介紹了文檔對(duì)象及使用。


dm520