本文转载自 http://liuzi.roboticfan.com
1.iframe也应该是框架的一种形式,它与<frame>不同的是,iframe可以嵌在网页中的任意部分。
<iframe src="/URL" width="x" height="x" scrolling="[OPTION]" frameborder="x"></iframe>
src:文件的路径,既可是HTML文件,也可以是文本、ASP等;
width、height:"画中画"区域的宽与高,可以是pixel值,也可以是百分比,比如width="100%";
scrolling 是否显示页面滚动条(可选的参数为 auto、yes、no,如果省略这个参数,则默认为auto);
FrameBorder:区域边框的宽度,为了让“画中画“与邻近的内容相融合,常设置为0(边框宽度为0)。
marginwidth, marginheight:控制插入页被框架覆盖的深度。
vspace:控制框架覆盖上部分的深度
比如:
<iframe src="http://www.xyz.com/xyz"; width="250" height="200" marginwidth=0 marginheight=0 vspace=-170 scrolling="no" frameborder="0"></iframe>
src可以是相对URL,如src="/bgm/bgm.html"
....................................................................................
2.如何使iframe背景透明
在transparentBody.htm文件的<body>标签中,我已经加入了style="background-color=transparent" 属性,通过以下四种iframe的写法我想大概你对iframe背景透明效果的实现方法应该会有个清晰的了解:
<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.如何实现iframe自适应窗体大小
<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 父窗口和子窗口的调用方法
在脚本语言与对象层次中,包含Iframe的窗口我们称之为父窗体,而浮动帧则称为子窗体,弄清这两者的关系很重要,因为要在父窗体中访问子窗体或相反都必须清楚对象层次,才能通过程序来访问并控制窗体。
父窗口调用子窗口的例子:
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>
子窗口调用父窗口的例子:
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标记。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
5.用图片代替Iframe的滚动条
<!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="按下鼠标速度会更快!"></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="按下鼠标速度会更快!"></td>
</tr>
</table>
</body>
</html>
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
6.下面这段代码可以实现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>
::::::::::::::::::::::::::::::::::::::::::::::
7.iframe应用之动态获取并替换网页内容
经常上论坛都能看的到,如果点击某个主题会出现“正在读取改贴的跟贴,请稍后.....”等的字眼。之后就显示了该主题的跟贴的一些相关信息。由于这几天要做类似于这种方式的BBS,所以就拿了一个BBS网站来研究一把,经过半天的查看源码和实践终于弄懂了。
它主要的是Iframe和innerHTML结合的结晶。下面是一个简单的示范:
page1.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>page1</title>
</head>
<body>
<script language="javascript">
function loadContent(){
//显示隐藏的提示内容
document.all.tr2.style.display="block";
//重新刷新iframe1的内容
document.frames["iframe1"].location.replace("page2.htm");
}
</script>
<!--精华所在,用隐藏的iframe来作为外部数据的来源-->
<iframe id="iframe1" width="0" height="0" name="I1"></iframe>
<table>
<tr id="tr1" ><!--DISPLAY: none是把这行隐藏-->
<td style="cursor:hand" onclick="loadContent()">
点击这里你会有新发现。。。
</td>
</tr>
<tr id="tr2" style="DISPLAY: none" ><!--DISPLAY: none是把这行隐藏-->
<td>
<div id="div_hidden">正在读取关于本主题的跟贴,请稍侯……</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("准备替换提示内容!");
parent.div_hidden.innerHTML = "你已经看到从另外一个页面来的替换信息";
</script>
</body>
</html>
posted on 2008-11-05 22:17
老丁 阅读(850)
评论(0) 编辑 收藏 所属分类:
html tag