本文轉(zhuǎn)載自 http://liuzi.roboticfan.com
1.iframe也應(yīng)該是框架的一種形式,它與<frame>不同的是,iframe可以嵌在網(wǎng)頁(yè)中的任意部分。
<iframe src="/URL" width="x" height="x" scrolling="[OPTION]" frameborder="x"></iframe>
src:文件的路徑,既可是HTML文件,也可以是文本、ASP等;
width、height:"畫(huà)中畫(huà)"區(qū)域的寬與高,可以是pixel值,也可以是百分比,比如width="100%";
scrolling 是否顯示頁(yè)面滾動(dòng)條(可選的參數(shù)為 auto、yes、no,如果省略這個(gè)參數(shù),則默認(rèn)為auto);
FrameBorder:區(qū)域邊框的寬度,為了讓“畫(huà)中畫(huà)“與鄰近的內(nèi)容相融合,常設(shè)置為0(邊框?qū)挾葹?)。
marginwidth, marginheight:控制插入頁(yè)被框架覆蓋的深度。
vspace:控制框架覆蓋上部分的深度
比如:
<iframe src="http://www.xyz.com/xyz"; width="250" height="200" marginwidth=0 marginheight=0 vspace=-170 scrolling="no" frameborder="0"></iframe>
src可以是相對(duì)URL,如src="/bgm/bgm.html"
....................................................................................
2.如何使iframe背景透明
在transparentBody.htm文件的<body>標(biāo)簽中,我已經(jīng)加入了style="background-color=transparent" 屬性,通過(guò)以下四種iframe的寫(xiě)法我想大概你對(duì)iframe背景透明效果的實(shí)現(xiàn)方法應(yīng)該會(huì)有個(gè)清晰的了解:
<iframe id="Frame1" src="http://www.webjx.com/htmldata/2006-01-03/transparentBody.htm" allowTransparency="true"></iframe>
<iframe id="Frame2" src="http://www.webjx.com/htmldata/2006-01-03/transparentBody.htm" allowTransparency="true" style="background-color: green"> </iframe>
<iframe id="Frame4" src="http://www.webjx.com/htmldata/2006-01-03/transparentBody.htm" style="background-color: green"> </iframe>
.....................................................................................
3.如何實(shí)現(xiàn)iframe自適應(yīng)窗體大小
<script>
function autoResize()
{
try
{
document.all["content"].style.height=content.document.body.scrollHeight
}
catch(e){}
}
</script>
<iframe src="main.htm" name="content" id="content" scrolling="no" frameborder="0" width="100%" onload="autoResiz();"> </iframe>
.........................
4.iframe 父窗口和子窗口的調(diào)用方法
在腳本語(yǔ)言與對(duì)象層次中,包含Iframe的窗口我們稱(chēng)之為父窗體,而浮動(dòng)幀則稱(chēng)為子窗體,弄清這兩者的關(guān)系很重要,因?yàn)橐诟复绑w中訪(fǎng)問(wèn)子窗體或相反都必須清楚對(duì)象層次,才能通過(guò)程序來(lái)訪(fǎng)問(wèn)并控制窗體。
父窗口調(diào)用子窗口的例子:
exmaple.htm
<html>
<body onload="test.myH1.innerText='hello,my dear';">
<Iframe src="test.htm" id="test" width="250" height="200" scrolling="no" frameborder="0"></iframe>
</body>
</html>
test.htm
<html>
<body>
<h1 id="myH1">hello,my boy</h1>
</body>
</html>
子窗口調(diào)用父窗口的例子:
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
<body onload="parent.myH2.innerText='hello,my new wife';"></body>
要注意的是,Nestscape6.0之前版本不支持Iframe標(biāo)記。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
5.用圖片代替Iframe的滾動(dòng)條
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>new document</title>
<script language="javascript">
function scroll(n)
{temp=n;
Out1.scrollTop=Out1.scrollTop+temp;
if (temp==0) return;
setTimeout("scroll(temp)",80);
}
</script>
</head>
<body>
<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;">
1<br>
2<br>
3<br>
4<br>
5<br>
6<br>
7<br>
8<br>
9<br>
10<br>
11<br>
12<br>
13<br>
14<br>
15<br>
16<br>
17<br>
18<br>
19<br>
20<br>
</div>
</td>
<td width="14" valign="top"><img src="/blog/scrollbar.gif" width="14" height="20" onmouseover="scroll(-1)" onmouseout="scroll(0)" onmousedown="scroll(-2)" border="0" alt="按下鼠標(biāo)速度會(huì)更快!"></td>
</tr>
<tr>
<td width="14" valign="bottom"><img src="/blog/scrollbar.gif" onmouseover="scroll(1)" onmouseout="scroll(0)"
onmousedown="scroll(2)" border="0" width="15" height="21" alt="按下鼠標(biāo)速度會(huì)更快!"></td>
</tr>
</table>
</body>
</html>
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
6.下面這段代碼可以實(shí)現(xiàn)IFrame自適應(yīng)高度,即隨著頁(yè)面的長(zhǎng)度,自動(dòng)適應(yīng)以免除頁(yè)面和IFrame同時(shí)出現(xiàn)滾動(dòng)條(比上面的一個(gè)復(fù)雜)。
源代碼如下:
<script type="text/javascript">
//** iframe自動(dòng)適應(yīng)頁(yè)面 **//
//輸入你希望根據(jù)頁(yè)面高度自動(dòng)調(diào)整高度的iframe的名稱(chēng)的列表
//用逗號(hào)把每個(gè)iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一個(gè)窗體,則不用逗號(hào)。
//定義iframe的ID
var iframeids=["test"]
//如果用戶(hù)的瀏覽器不支持iframe是否將iframe隱藏 yes 表示隱藏,no表示不隱藏
var iframehide="yes"
function dyniframesize()
{
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++)
{
if (document.getElementById)
{
//自動(dòng)調(diào)整iframe高度
dyniframe[dyniframe.length] = document.getElementById(iframeids);
if (dyniframe && !window.opera)
{
dyniframe.style.display="block"
if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) //如果用戶(hù)的瀏覽器是NetScape
dyniframe.height = dyniframe.contentDocument.body.offsetHeight;
else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) //如果用戶(hù)的瀏覽器是IE
dyniframe.height = dyniframe.Document.body.scrollHeight;
}
}
//根據(jù)設(shè)定的參數(shù)來(lái)處理不支持iframe的瀏覽器的顯示問(wèn)題
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>
::::::::::::::::::::::::::::::::::::::::::::::
7.iframe應(yīng)用之動(dòng)態(tài)獲取并替換網(wǎng)頁(yè)內(nèi)容
經(jīng)常上論壇都能看的到,如果點(diǎn)擊某個(gè)主題會(huì)出現(xiàn)“正在讀取改貼的跟貼,請(qǐng)稍后.....”等的字眼。之后就顯示了該主題的跟貼的一些相關(guān)信息。由于這幾天要做類(lèi)似于這種方式的BBS,所以就拿了一個(gè)BBS網(wǎng)站來(lái)研究一把,經(jīng)過(guò)半天的查看源碼和實(shí)踐終于弄懂了。
它主要的是Iframe和innerHTML結(jié)合的結(jié)晶。下面是一個(gè)簡(jiǎn)單的示范:
page1.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>page1</title>
</head>
<body>
<script language="javascript">
function loadContent(){
//顯示隱藏的提示內(nèi)容
document.all.tr2.style.display="block";
//重新刷新iframe1的內(nèi)容
document.frames["iframe1"].location.replace("page2.htm");
}
</script>
<!--精華所在,用隱藏的iframe來(lái)作為外部數(shù)據(jù)的來(lái)源-->
<iframe id="iframe1" width="0" height="0" name="I1"></iframe>
<table>
<tr id="tr1" ><!--DISPLAY: none是把這行隱藏-->
<td style="cursor:hand" onclick="loadContent()">
點(diǎn)擊這里你會(huì)有新發(fā)現(xiàn)。。。
</td>
</tr>
<tr id="tr2" style="DISPLAY: none" ><!--DISPLAY: none是把這行隱藏-->
<td>
<div id="div_hidden">正在讀取關(guān)于本主題的跟貼,請(qǐng)稍侯……</div>
</td>
</tr>
</table>
</body>
</html>
page2.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>page2</title>
</head>
<body>
<script language="javascript">
alert("準(zhǔn)備替換提示內(nèi)容!");
parent.div_hidden.innerHTML = "你已經(jīng)看到從另外一個(gè)頁(yè)面來(lái)的替換信息";
</script>
</body>
</html>