Iframe和FRAME的区别分析

2020-04-15 22:31:10易采站长站整理

比如在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 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中的特性同样适用于浮动帧中。
试想一下,通过Iframe标记,我们可将那些不变的内容以Iframe来表示,这样,不必重复写相同的内容,这有点象程序设计中的过程或函数,减省了多少繁琐的手工劳动!另外,至关重要的是,它使页面的修改更为可行,因为,不必因为版式的调整而修改每个页面,你只需修改一个父窗体的版式即可了。
有一点要注意,Nestscape浏览器不支持Iframe标记,但在时下IE的天下,这似乎也无大碍,广泛采用Iframe标记,既为自己(网站)着了想,又为网友节省了网费,何乐而不为?
浮动FRAME是HTML4.0规范中的一个定义,目前的浏览器都支持它。
不象FRAMESET表示的分割区样子,一个浮动FRAME作为一个内置对象存在于Web页面上,其样式就象一个页面上的一个图形或者一个applet。浮动FRAME使用<IFRAME>标记,它具有与<FRAME>相同的大多数属性设置,包括:name、src、marginwidth、marginheight、FRAMEborder以及scrolling。同时,它还具有与图形或者applet一样的height、width和align属性。
而且,浮动FRAME遵循与普通FRAME一样的target原则:我们可以通过它的name来指向它。本原则适用于在任一类型FRAME中的浮动FRAME,反之易然。浮动FRAME中的没有traget的链接指向它本身,而_parent链接则指向包含<IFRAME>的文档所在的FRAME或者窗口。比如: