js|網頁
ZZzzz~ may wind
<Iframe src="/URL" width="x" height="x" scrolling="[OPTION]" frameborder="x"></iframe>
src:檔案的路徑,既可是HTML檔案,也可以是文本、ASP等;
width、height:"畫中畫"地區的寬與高;
scrolling:當SRC的指定的HTML檔案在指定的地區不顯不完時,滾動選項,如果設定為NO,則不出現捲軸;如為Auto:則自動出現捲軸;如為Yes,則顯示;
frameborder:地區邊框的寬度,為了讓“畫中畫“與鄰近的內容相融合,常設定為0。
比如:
<Iframe src="http://www.xyz.com/xyz"; width="250" height="200" scrolling="no" frameborder="0"></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.myH1.innerText="hello,my dear"(其中,document可省)
在example.htm檔案中,Iframe標記對象所指的子表單與一般的DHTML物件模型一致,對對象存取控制方式一樣,就不再贅述。
2、在子表單中訪問並控制父表單中對象
在子表單中我們可以通過其parent即父(雙親)對象來訪問父視窗中的對象。
如example.htm:
<html>
<body > <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中的特性同樣適用於浮動幀中。
試想一下,通過Iframe標記,我們可將那些不變的內容以Iframe來表示,這樣,不必重複寫相同的內容,這有點象程式設計中的過程或函數,減省了 多少繁瑣的手工勞動!另外,至關重要的是,它使頁面的修改更為可行,因為,不必因為版式的調整而修改每個頁面,你只需修改一個父表單的版式即可了。
要注意的是,Nestscape6.0之前版本不支援Iframe標記。
例子:
<iframe src="頁面" width="寬度" height="高度" align="排列可以是left或right,center" scrolling="是否有捲軸可以填no或yes"></iframe>
<IFRAME frameBorder=0 frameSpacing=0 height=25 marginHeight=0 marginWidth=0 scrolling=no
name=main src="/bgm/bgm.html" width=300></IFRAME>
用了iframe後 發現捲軸不漂亮 想用2個圖片來代替↑↓
應該怎麼實現呢?
回答:
用下列代碼替換網頁的<title>..</title>
<SCRIPT LANGUAGE="javascript">
function scroll(n)
{temp=n;
Out1.scrollTop=Out1.scrollTop+temp;
if (temp==0) return;
setTimeout("scroll(temp)",80);
}
</SCRIPT>
<TABLE WIDTH="330">
<TR>
<TD WIDTH="304" VALIGN="TOP" ROWSPAN="2" >
<DIV ID=Out1 STYLE="width:100%; height:100;overflow: hidden ;border-style:dashed;border-width:
1px,1px,1px,1px;">
文字<BR> 文字<BR>
文字<BR>
文字<BR>
文字
<BR>
<BR>
</DIV>
</TD>
< TD WIDTH="14" VALIGN="TOP"><IMG SRC="http://www.webjx.com/htmldata/2007-04-25/photo/up0605.gif" WIDTH="14" HEIGHT ="20" BORDER="0" ALT="按下滑鼠速度會更快!"></TD>
</TR>
<TR>
< TD WIDTH="14" VALIGN="BOTTOM"><IMG SRC="http://www.webjx.com/htmldata/2007-04-25/photo/down0605.gif" onmouseover ="scroll(1)" BORDER="0" WIDTH ="15" HEIGHT="21" ALT="按下滑鼠速度會更快!"></TD>
</TR>
</TABLE>
下面這段代碼可以實現IFrame自適應高度,即隨著頁面的長度,自動適應以免除頁面和IFrame同時出現捲軸。
原始碼如下
<script type="text/javascript">
//** iframe自動適應頁面 **//
//輸入你希望根據頁面高度自動調整高度的iframe的名稱的列表
//用逗號把每個iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一個表單,則不用逗號。
//定義iframe的ID
var iframeids=["test"]
//如果使用者的瀏覽器不支援iframe是否將iframe隱藏 yes 表示隱藏,no表示不隱藏
var iframehide="yes"
function dyniframesize()
{
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++)
{
if (document.getElementById)
{
//自動調整iframe高度
dyniframe[dyniframe.length] = document.getElementById(iframeids);
if (dyniframe && !window.opera)
{
dyniframe.style.display="block"
if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) //如果使用者的瀏覽器是NetScape
dyniframe.height = dyniframe.contentDocument.body.offsetHeight;
else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) //如果使用者的瀏覽器是IE
dyniframe.height = dyniframe.Document.body.scrollHeight;
}
}
//根據設定的參數來處理不支援iframe的瀏覽器的顯示問題
if ((document.all || document.getElementById) && iframehide=="no")
{
var tempobj=document.all? document.all[iframeids] : document.getElementById(iframeids)
tempobj.style.display="block"
}
}
}
if (window.addEventListener)
window.addEventListener("load", dyniframesize, false)
else if (window.attachEvent)
window.attachEvent("onload", dyniframesize)
else
window.onload=dyniframesize
</script>
其他有參考價值的網址:
http://www.webshu.com/tutorial/tor/7,id=0408.htm //iframe嵌入網頁的用法
http://www.phpx.com/man/dhtmlcn/objects/IFRAME.html //IFRAME對象
http://www.hoyo.idv.tw/web-program/html/iframe.htm //內嵌架構iframe