Iframe框架中父子窗體的互相控制

父窗體與浮動幀之間的相互控制 在腳本語言與對象層次中,包含Iframe的窗口我們稱之爲父窗體,而浮動幀則稱爲子窗體,弄清這兩者的關係很重要,因爲要在父窗體中訪問子窗體或相反都必須清楚對象層次,才能通過程序來訪問並控制窗體。

1、在父窗體中訪問並控制子窗體中的對象

在父窗體中,Iframe即子窗體是document對象的一個子對象,可以直接在腳本中訪問子窗體中的對象。

現在就有一個問題,即,我們怎樣來控制這個Iframe,這裏需要講一下Iframe對象。當我們給這個標記設置了ID 屬性後,就可通過文檔對象模型DOM對Iframe所含的HTML進行一系列控制。

比如在example.htm裏嵌入test.htm文件,並控制test.htm裏一些標記對象:
<Iframe src="test.htm" id="test" width="250" height="200" scrolling="no" frameborder="0"></iframe>
test.htm文件代碼爲:
<html>
<body>
<h1 id="myH1">hello,my boy</h1>
</body>
</html>
如我們要改變ID號爲myH1的H1標記裏的文字爲hello,my dear,則可用:
document.test.myH1.innerText="hello,my dear"(其中,document可省) (已經測試可行)
在example.htm文件中,Iframe標記對象所指的子窗體與一般的DHTML對象模型一致,對對象訪問控制方式一樣,就不再贅述。

2、在子窗體中訪問並控制父窗體中對象

在子窗體中我們可以通過其parent即父(雙親)對象來訪問父窗口中的對象。
如example.htm:
<html>
<body onclick="alert(tt.myH1.innerHTML)">
<Iframe name="tt" src="frame1.htm" width="250" height="200" scrolling="no" frameborder="0"></iframe>
<h1 id="myH2">hello,my wife</h1>
</body>
</html>
如果要在frame1.htm中訪問ID號爲myH2中的標題文字並將之改爲"hello,my friend",我們就可以這樣寫:
parent.myH2.innerText="hello,my friend" (未測試)
這裏parent對象就代表當前窗體(example.htm所在窗體),要在子窗體中訪問父窗體中的對象,無一例外都通過parent對象來進行。

Iframe雖然內嵌在另一個HTML文件中,但它保持相對的獨立,是一個“獨立王國“喲,在單一HTML中的特性同樣適用於浮動幀中。 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章