一、什么是框架
框架Frames最主要功用是"分割"視窗,使每個(gè)"小視窗"能顯示不同的HTM L文件,不同框架之間可以互動(interact),這就是說不同框架之間可以交換訊息與資料。例如:假設(shè)您開了兩個(gè)frames,第一個(gè)frame可顯示書的目錄,第二個(gè)frame則顯示章節(jié)的具體內(nèi)容。
框架可以將屏幕分割成不同的區(qū)域,每個(gè)區(qū)域有自己的URL,通過Frames[]數(shù)組對象來實(shí)現(xiàn)不同框架的訪問。實(shí)際上框架對象本身也一類窗口,它繼承了窗口對象的所有特征,并擁有所有的屬性和方法。下面我們先看一下框架的例子。見圖9-1所示。


圖9-1 框架對象
<HTML>
<HEAD>
</HEAD>
<Frameset Rows="20%,80%">
<frame src="test9_1.html">
<Frameset Cols="50%,50%">
<frame src="test9_2.html">
<frame src="test9_3.html">
</Frameset>
</Frameset>
</HTML>

以上HTML標(biāo)識將屏幕分成三個(gè)框架。先將窗口分成以二行為單位的窗口,之后再按分成二個(gè)窗口。并在相應(yīng)的框架中放入自己的HTML文檔。
通過[Framset ]告訴瀏覽器您要設(shè)置幾個(gè)框架;rows這項(xiàng)參數(shù)告訴瀏覽器您想將視窗分割成幾列;而 cols這項(xiàng)參數(shù)是告訴瀏覽器您想將視窗分割成幾行。
可以用很多組的 <frameset...> tags 將視窗分割得更復(fù)雜。
可以給每個(gè)frame一個(gè)"名字" (name)。frame的名字在JavaScript語法中的地位非常重要。     可以用 <src> 告訴瀏覽器您要載入哪一個(gè) HTML文件。

二、如何訪問框架
在前面我們介紹過使用document.forms[]實(shí)現(xiàn)單一窗體中不同元素的訪問。而要實(shí)現(xiàn)框架中多窗體的不同元素的訪問,則必須使用window對象中的Frames屬性。Frames屬性同樣也是一個(gè)數(shù)組,他在  父框架集中為每一個(gè)子框架設(shè)有一項(xiàng)。通過下標(biāo)實(shí)現(xiàn)不同框架的訪問:
parent.frames[Index1].docuement.forms[index2]
通過parent.frames.length確定窗口中窗體的數(shù)目。 除了使用數(shù)組下標(biāo)來訪問窗體外還可以使用框架名和窗體名來實(shí)現(xiàn)各元素的訪:
parent.framesName.decument.formNames.elementName.(m/p)

 三、范例
下面我們通過一個(gè)具體的實(shí)例, 來說明利用JavaScript腳本在WEB中實(shí)現(xiàn)更為復(fù)雜的信息交互。該例子是在一個(gè)多窗口中實(shí)現(xiàn)窗體信息的動態(tài)交互,在程序中首先在瀏覽器窗口中制作三個(gè)用于窗體交互的窗口,每個(gè)窗體窗口實(shí)現(xiàn)不同信息的動態(tài)交互。
tset9.html為主調(diào)用文檔它首先將窗口劃分為具有二行的窗體,爾后再將第二行的窗體劃分為具有二列的窗體;
test9-1.html為顯示標(biāo)題文檔;
test9_2.html為第二框架文檔其中需要注意的是:
通過JavaScript腳本將所示的“云南省”和“四川省”分別改為“昆明市”和“成都市”;
test7_3.html為第三框架文檔。

主調(diào)文檔
主要作用是將窗口劃分為具有二行的窗體,爾后再將第二行的窗體劃分為具有二列的窗體。
Test9.htm
<HTML>
<HEAD>
</HEAD>
<Frameset Rows="10%,90%">
<frame src="test9_1.htm">
<Frameset Cols="40%,60%">
<frame src="test9_2.htm">
<frame src="test9_3.htm">
</Frameset>
</Frameset>
</HTML>
第一個(gè)框架
主要作用是顯示標(biāo)題文檔。
Test9_1.htm
<HTML>
<HEAD>
</HEAD>
<H2>使用框架實(shí)現(xiàn)WEB交互</H2>
</HTML>

第二個(gè)框架
主要作用是實(shí)現(xiàn)交互。可以通過JavaScript腳本將所示的“云南省”和“四川省”分別改為“昆明市”和“成都市”。
Test9_2.htm
<HTML>
<HEAD>
</HEAD>
<Body>
<Form name="test9_1">
請選擇城市:<BR>
<Select name="select1" Multiple>
<Option>云南省
<Option>四川省
<Option>貴州省
<Option>山東省
<Option>江蘇省
<Option>浙江省
<Option>安徽省
<Option>河南省
</select><BR>
<HR>
<Input Type="Submit" name="" value="提交">
<Input Type="reset" name="" value="復(fù)位">
</Form>
<pre>
<script language="JavaScript">
document.test9_1.elements[0].options[0].text="昆明市";
document.test9_1.elements[0].options[1].text="成都市";
</script>
</pre>
</Body>
</HTML>

第三個(gè)框架
主要作用是實(shí)現(xiàn)交互。
Test9_3.htm
<HTML>
<HEAD>
</HEAD>
<Body>
<Form name="test9_2">
請輸入用戶名:
<Input Type="text" name="text1" Value="" Size=20><BR>
<HR>
請選擇:
<Input Type="Checkbox" name="checkbox1" Value="qb">全部信息<BR>
<Input Type="Checkbox" name="checkbox2" Value="bf">部分信息<BR>
<Input Type="Checkbox" name="checkbox3" Value="sy">所有城市<br>
<HR>
<Input Type="Submit" name="" value="提交">
<Input Type="reset" name="" value="復(fù)位">
<BR>
</Form>
<script language="JavaScript">
document.test9_2.elements[0].value="勞動和社會保障";
document.test9_2.elements[1].checked=true;
document.test9_2.elements[2].checked=true;
document.test9_2.elements[3].checked=false;
</script>
</Body>
</HTML>
在瀏覽器中的結(jié)果見圖9-2所示。


圖 9-2 在瀏覽器中結(jié)果

本講介紹框架中的基本元素的主要功能和使用,利用JavaScript腳本可以非常方便、靈活地實(shí)現(xiàn)Web頁面更為復(fù)雜的信息交互,這是HTML標(biāo)識語言所不能具備的。從中可以看出JavaScript是多么的吸引眾多的Web設(shè)計(jì)人員。


dm520