Iframe和FRAME的區(qū)別分析
發(fā)布時間:2010-03-08 21:58:54 作者:佚名
我要評論

Iframe和FRAME的區(qū)別,方便大家以后在使用過程中根據(jù)實(shí)際需要取舍。
一、Iframe標(biāo)記的使用
提起Iframe,可能你早已將之扔到“被遺忘的角落”了,不過,說起其兄弟Frame就不會陌生了。Frame標(biāo)記即幀標(biāo)記,我們所說的多幀結(jié)構(gòu)就是在一個瀏覽器窗口中顯示多個HTML文件。現(xiàn)在,我們遇到一種很現(xiàn)實(shí)的情況:如有一個教程,是一節(jié)一節(jié)地上,每頁末尾做一個“上一節(jié)“、“下一節(jié)“的鏈接,除了每節(jié)教程內(nèi)容不同之外,頁面其它部分內(nèi)容都是相同的,如果一頁一頁地做笨頁面,這似乎太讓人厭煩了,這時突發(fā)奇想,如果有一種方法讓頁面其它地方不變,只將教程做成一頁一頁的內(nèi)容頁,不含其它內(nèi)容,在點(diǎn)擊上下翻頁鏈接時,只改變教程內(nèi)容部分,其它保持不變,這樣,一是省時,另則以后如教程有個三長兩短的變動,也很方便,不致于牽一發(fā)而動全軍了;更重要的是將那些廣告Banner、欄目列表、導(dǎo)航等幾乎每頁的都有的東西只下載一次后就不再下載了。
Iframe標(biāo)記,又叫浮動幀標(biāo)記,你可以用它將一個HTML文檔嵌入在一個HTML中顯示。它不同于Frame標(biāo)記最大的特征即這個標(biāo)記所引用的HTML文件不是與另外的HTML文件相互獨(dú)立顯示,而是可以直接嵌入在一個HTML文件中,與這個HTML文件內(nèi)容相互融合,成為一個整體,另外,還可以多次在一個頁面內(nèi)顯示同一內(nèi)容,而不必重復(fù)寫內(nèi)容,一個形象的比喻即“畫中畫“電視。
現(xiàn)在我們談一下Iframe標(biāo)記的使用。
Iframe標(biāo)記的使用格式是:
<Iframe src="URL" width="x" height="x" scrolling="[OPTION]" frameborder="x"></iframe>
src:文件的路徑,既可是HTML文件,也可以是文本、ASP等;
width、height:"畫中畫"區(qū)域的寬與高;
scrolling:當(dāng)SRC的指定的HTML文件在指定的區(qū)域不顯不完時,滾動選項(xiàng),如果設(shè)置為NO,則不出現(xiàn)滾動條;如為Auto:則自動出現(xiàn)滾動條;如為Yes,則顯示;
FrameBorder:區(qū)域邊框的寬度,為了讓“畫中畫“與鄰近的內(nèi)容相融合,常設(shè)置為0。
比如:
<Iframe src="http://netschool.cpcw.com/homepage" width="250" height="200" scrolling="no" frameborder="0"></iframe>
二、父窗體與浮動幀之間的相互控制
在腳本語言與對象層次中,包含Iframe的窗口我們稱之為父窗體,而浮動幀則稱為子窗體,弄清這兩者的關(guān)系很重要,因?yàn)橐诟复绑w中訪問子窗體或相反都必須清楚對象層次,才能通過程序來訪問并控制窗體。
1、在父窗體中訪問并控制子窗體中的對象
在父窗體中,Iframe即子窗體是document對象的一個子對象,可以直接在腳本中訪問子窗體中的對象。
現(xiàn)在就有一個問題,即,我們怎樣來控制這個Iframe,這里需要講一下Iframe對象。當(dāng)我們給這個標(biāo)記設(shè)置了ID 屬性后,就可通過文檔對象模型DOM對Iframe所含的HTML進(jìn)行一系列控制。
比如在example.htm里嵌入test.htm文件,并控制test.htm里一些標(biāo)記對象:
<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標(biāo)記里的文字為hello,my dear,則可用:
document.myH1.innerText="hello,my dear"(其中,document可省)
在example.htm文件中,Iframe標(biāo)記對象所指的子窗體與一般的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中的標(biāo)題文字并將之改為"hello,my friend",我們就可以這樣寫:
parent.myH2.innerText="hello,my friend"
這里parent對象就代表當(dāng)前窗體(example.htm所在窗體),要在子窗體中訪問父窗體中的對象,無一例外都通過parent對象來進(jìn)行。
Iframe雖然內(nèi)嵌在另一個HTML文件中,但它保持相對的獨(dú)立,是一個“獨(dú)立王國“喲,在單一HTML中的特性同樣適用于浮動幀中。
試想一下,通過Iframe標(biāo)記,我們可將那些不變的內(nèi)容以Iframe來表示,這樣,不必重復(fù)寫相同的內(nèi)容,這有點(diǎn)象程序設(shè)計(jì)中的過程或函數(shù),減省了多少繁瑣的手工勞動!另外,至關(guān)重要的是,它使頁面的修改更為可行,因?yàn)?,不必因?yàn)榘媸降恼{(diào)整而修改每個頁面,你只需修改一個父窗體的版式即可了。
有一點(diǎn)要注意,Nestscape瀏覽器不支持Iframe標(biāo)記,但在時下IE的天下,這似乎也無大礙,廣泛采用Iframe標(biāo)記,既為自己(網(wǎng)站)著了想,又為網(wǎng)友節(jié)省了網(wǎng)費(fèi),何樂而不為?
浮動FRAME是HTML4.0規(guī)范中的一個定義,目前的瀏覽器都支持它。
不象FRAMESET表示的分割區(qū)樣子,一個浮動FRAME作為一個內(nèi)置對象存在于Web頁面上,其樣式就象一個頁面上的一個圖形或者一個applet。浮動FRAME使用<IFRAME>標(biāo)記,它具有與<FRAME>相同的大多數(shù)屬性設(shè)置,包括:name、src、marginwidth、marginheight、FRAMEborder以及scrolling。同時,它還具有與圖形或者applet一樣的height、width和align屬性。
而且,浮動FRAME遵循與普通FRAME一樣的target原則:我們可以通過它的name來指向它。本原則適用于在任一類型FRAME中的浮動FRAME,反之易然。浮動FRAME中的沒有traget的鏈接指向它本身,而_parent鏈接則指向包含<IFRAME>的文檔所在的FRAME或者窗口。比如:
<IFRAME name="floater" src="start.htm" width=150 height=200 hspace=10 align=left>
<IMG src="Images/noFRAME.gif" alt="You can't see the floating FRAME"
width=150 height=200 hspace=10 align=right>
</IFRAME><BR>
<A href="one.htm" target="floater">Show one.htm</A><P>
<A href="two.htm" target="floater">Show two.htm</A><P>
<A href="start.htm" target="floater">Bring back start.htm</A>
注意,對應(yīng)支持<IFRAME>標(biāo)記的瀏覽器,任何位于<IFRAME>和</IFRAME>間的內(nèi)容都將忽略。反之,其中的內(nèi)容將顯示出來,這可以用作解釋當(dāng)前瀏覽器不支持<IFRAME>
提起Iframe,可能你早已將之扔到“被遺忘的角落”了,不過,說起其兄弟Frame就不會陌生了。Frame標(biāo)記即幀標(biāo)記,我們所說的多幀結(jié)構(gòu)就是在一個瀏覽器窗口中顯示多個HTML文件。現(xiàn)在,我們遇到一種很現(xiàn)實(shí)的情況:如有一個教程,是一節(jié)一節(jié)地上,每頁末尾做一個“上一節(jié)“、“下一節(jié)“的鏈接,除了每節(jié)教程內(nèi)容不同之外,頁面其它部分內(nèi)容都是相同的,如果一頁一頁地做笨頁面,這似乎太讓人厭煩了,這時突發(fā)奇想,如果有一種方法讓頁面其它地方不變,只將教程做成一頁一頁的內(nèi)容頁,不含其它內(nèi)容,在點(diǎn)擊上下翻頁鏈接時,只改變教程內(nèi)容部分,其它保持不變,這樣,一是省時,另則以后如教程有個三長兩短的變動,也很方便,不致于牽一發(fā)而動全軍了;更重要的是將那些廣告Banner、欄目列表、導(dǎo)航等幾乎每頁的都有的東西只下載一次后就不再下載了。
Iframe標(biāo)記,又叫浮動幀標(biāo)記,你可以用它將一個HTML文檔嵌入在一個HTML中顯示。它不同于Frame標(biāo)記最大的特征即這個標(biāo)記所引用的HTML文件不是與另外的HTML文件相互獨(dú)立顯示,而是可以直接嵌入在一個HTML文件中,與這個HTML文件內(nèi)容相互融合,成為一個整體,另外,還可以多次在一個頁面內(nèi)顯示同一內(nèi)容,而不必重復(fù)寫內(nèi)容,一個形象的比喻即“畫中畫“電視。
現(xiàn)在我們談一下Iframe標(biāo)記的使用。
Iframe標(biāo)記的使用格式是:
<Iframe src="URL" width="x" height="x" scrolling="[OPTION]" frameborder="x"></iframe>
src:文件的路徑,既可是HTML文件,也可以是文本、ASP等;
width、height:"畫中畫"區(qū)域的寬與高;
scrolling:當(dāng)SRC的指定的HTML文件在指定的區(qū)域不顯不完時,滾動選項(xiàng),如果設(shè)置為NO,則不出現(xiàn)滾動條;如為Auto:則自動出現(xiàn)滾動條;如為Yes,則顯示;
FrameBorder:區(qū)域邊框的寬度,為了讓“畫中畫“與鄰近的內(nèi)容相融合,常設(shè)置為0。
比如:
<Iframe src="http://netschool.cpcw.com/homepage" width="250" height="200" scrolling="no" frameborder="0"></iframe>
二、父窗體與浮動幀之間的相互控制
在腳本語言與對象層次中,包含Iframe的窗口我們稱之為父窗體,而浮動幀則稱為子窗體,弄清這兩者的關(guān)系很重要,因?yàn)橐诟复绑w中訪問子窗體或相反都必須清楚對象層次,才能通過程序來訪問并控制窗體。
1、在父窗體中訪問并控制子窗體中的對象
在父窗體中,Iframe即子窗體是document對象的一個子對象,可以直接在腳本中訪問子窗體中的對象。
現(xiàn)在就有一個問題,即,我們怎樣來控制這個Iframe,這里需要講一下Iframe對象。當(dāng)我們給這個標(biāo)記設(shè)置了ID 屬性后,就可通過文檔對象模型DOM對Iframe所含的HTML進(jìn)行一系列控制。
比如在example.htm里嵌入test.htm文件,并控制test.htm里一些標(biāo)記對象:
<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標(biāo)記里的文字為hello,my dear,則可用:
document.myH1.innerText="hello,my dear"(其中,document可省)
在example.htm文件中,Iframe標(biāo)記對象所指的子窗體與一般的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中的標(biāo)題文字并將之改為"hello,my friend",我們就可以這樣寫:
parent.myH2.innerText="hello,my friend"
這里parent對象就代表當(dāng)前窗體(example.htm所在窗體),要在子窗體中訪問父窗體中的對象,無一例外都通過parent對象來進(jìn)行。
Iframe雖然內(nèi)嵌在另一個HTML文件中,但它保持相對的獨(dú)立,是一個“獨(dú)立王國“喲,在單一HTML中的特性同樣適用于浮動幀中。
試想一下,通過Iframe標(biāo)記,我們可將那些不變的內(nèi)容以Iframe來表示,這樣,不必重復(fù)寫相同的內(nèi)容,這有點(diǎn)象程序設(shè)計(jì)中的過程或函數(shù),減省了多少繁瑣的手工勞動!另外,至關(guān)重要的是,它使頁面的修改更為可行,因?yàn)?,不必因?yàn)榘媸降恼{(diào)整而修改每個頁面,你只需修改一個父窗體的版式即可了。
有一點(diǎn)要注意,Nestscape瀏覽器不支持Iframe標(biāo)記,但在時下IE的天下,這似乎也無大礙,廣泛采用Iframe標(biāo)記,既為自己(網(wǎng)站)著了想,又為網(wǎng)友節(jié)省了網(wǎng)費(fèi),何樂而不為?
浮動FRAME是HTML4.0規(guī)范中的一個定義,目前的瀏覽器都支持它。
不象FRAMESET表示的分割區(qū)樣子,一個浮動FRAME作為一個內(nèi)置對象存在于Web頁面上,其樣式就象一個頁面上的一個圖形或者一個applet。浮動FRAME使用<IFRAME>標(biāo)記,它具有與<FRAME>相同的大多數(shù)屬性設(shè)置,包括:name、src、marginwidth、marginheight、FRAMEborder以及scrolling。同時,它還具有與圖形或者applet一樣的height、width和align屬性。
而且,浮動FRAME遵循與普通FRAME一樣的target原則:我們可以通過它的name來指向它。本原則適用于在任一類型FRAME中的浮動FRAME,反之易然。浮動FRAME中的沒有traget的鏈接指向它本身,而_parent鏈接則指向包含<IFRAME>的文檔所在的FRAME或者窗口。比如:
<IFRAME name="floater" src="start.htm" width=150 height=200 hspace=10 align=left>
<IMG src="Images/noFRAME.gif" alt="You can't see the floating FRAME"
width=150 height=200 hspace=10 align=right>
</IFRAME><BR>
<A href="one.htm" target="floater">Show one.htm</A><P>
<A href="two.htm" target="floater">Show two.htm</A><P>
<A href="start.htm" target="floater">Bring back start.htm</A>
注意,對應(yīng)支持<IFRAME>標(biāo)記的瀏覽器,任何位于<IFRAME>和</IFRAME>間的內(nèi)容都將忽略。反之,其中的內(nèi)容將顯示出來,這可以用作解釋當(dāng)前瀏覽器不支持<IFRAME>
相關(guān)文章
- iframe如何刷新一直都被網(wǎng)友所關(guān)注,接下來為大家詳細(xì)介紹下三種:用iframe的name屬性定位/id屬性定位/當(dāng)iframe的src為其它網(wǎng)站地址時,感興趣的朋友可以參考下哈2013-03-29
iframe的src設(shè)置為about:blank之后細(xì)節(jié)探討
不設(shè)置為about:blank,內(nèi)存不會釋放掉。還必須用 iframe.document.write(''); 這樣才能將內(nèi)容清空,本文將詳細(xì)探討一下iframe的src設(shè)置為about:blank之后細(xì)節(jié),感興趣的你2013-02-25- frame的src賦值的問題,本文將進(jìn)行詳細(xì)探討:服務(wù)器端的iframe重新src重新賦值,給iframe加一個ID,再加上runat=server,感興趣的你可不要錯過了哈2013-02-25
網(wǎng)頁設(shè)計(jì)技巧:iframe自適應(yīng)高度的問題
所謂iframe自適應(yīng)高度,就是,基于界面美觀和交互的考慮,隱藏了iframe的border和scrollbar,讓人看不出它是個iframe2012-11-12- iframes 提供了一個簡單的方式把一個網(wǎng)站的內(nèi)容嵌入到另一個網(wǎng)站中。但我們需要慎重的使用iframe。iframe的創(chuàng)建比其它包括scripts和css的 DOM 元素的創(chuàng)建慢了 1-2 個數(shù)量級2012-09-05
iframe標(biāo)簽用法詳解(屬性、透明、自適應(yīng)高度)
iframe一般用來包含別的頁面,例如我們可以在我們自己的網(wǎng)站頁面加載別人網(wǎng)站的內(nèi)容,為了更好的效果,可能需要使iframe透明效果,那么就需要了解更多的iframe屬性,這里簡2014-10-01- 在構(gòu)建B/S系統(tǒng)界面的時候,經(jīng)常會遇到主頁面index.html中嵌套其他頁面的情況 ,雖然已經(jīng)有的庫已經(jīng)提供了控件(例如jQuery easy UI),但是有時候iframe的使用是不可避免的2010-08-06
- 有時候需要讓iframe繼承父頁面的顏色。不需要復(fù)雜的操作,簡單的幾個參數(shù)設(shè)置下即可。2010-07-21
IE6 select z-index無效,遮擋div bug的解決方法
在最近的一個項(xiàng)目中,遇到了IE6 select遮擋div的bug,為了解決這個bug我查了很多資料,試圖找到一個最最有效的方法,很多人是通過iframe的方法來解決,其實(shí)我查了國外的很2010-06-18Iframe 高度自適應(yīng)(兼容IE/Firefox、同域/跨域)
在實(shí)際的項(xiàng)目進(jìn)行中,很多地方可能由于歷史原因不得不去使用iframe,包括目前正火熱的應(yīng)用開發(fā)也是如此。2010-03-17