`
leiwuluan
  • 浏览: 694500 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

JavaScript框架编程

阅读更多

一个HTML页面可以有一个或多个子框架,这些子框架以<iframe>或<frame>来标记,用来显
示一个独立的HTML页面。本节介绍框架的自我控制及框架之间的相互访问,例如从一个框架中引用另
一个框架中的JavaScript变量,调用其他框架内的函数,控制另一个框架中表单的行为等。
第一节
框架的引用
在一个HTML 页面中,所有的框架以集合的形式作为window 对象的属性提供,例如
window.frames表示该页面内所有框架的集合,这和表单对象、链接对象等类似。不同的是,这些集
合是document的属性,因此,要引用一个子框架,可以使用如下语法:
window.frames["frameName"]
window.frames.frameName
window.frames[index]
其中,window字样也可以用self代替或省略,假设frameName为页面中第一个框架,则以下写法
是等价的:
window.frames["frameName"]
self.frames["frameName"]
self.frames[0]
frames[0]
frameName
每个框架都对应一个HTML页面,所以这个框架也是一个独立的浏览器窗口,它具有窗口的所有
性质,对框架的引用也就是对window对象的引用。有了这个window对象,就可以很方便地对其中的
页面进行操作,例如使用window.document对象向页面写入数据、使用window.location属性来
改变框架内的页面等。下面分别介绍不同层次框架间的相互引用。
1、
父框架到子框架的引用
从父框架引用子框架的方法为:
window.frames["frameName"]
这样就引用了页面内名为frameName的子框架,如果要引用子框架内的子框架,事实上,引用
的框架就是window对象,实现方法如下:
window.frames["frameName"].frames["frameName2"]
这样就很容易引用到了二级子框架,依次类推,可以实现多层框架的引用。
2、
子框架到父框架的引用
每个window对象都有一个parent属性,表示它的父框架。如果该框架已经是顶层框架,则
window.parent还表示该框架本身,例如,先创建一个TestA.html文件,其代码如下:
<html>
<head><title>父页面</title></head>
<body>
<form name="formA" id="formA">
<input type="text" name="username" id="username"/>
</form>
<iframe src="TestB.html" width="100%"></iframe>
</body>
</html>
在上面代码中,定义了一个iframe 框架并把TestB.html 文件放在其中,如果需要在
TestB.html中对TestA.html中的username文本框赋值,就应该在TestB.html中实现如下代码:
<script type="text/javascript">
var parentWin=window.parent;
parentWin.formA.username.value="javakc";
</script>
3、
兄弟框架间的引用
如果两个框架为同一个框架的子框架,它们称为兄弟框架,可以通过父框架来实现互相引用,例
如一个页面包括2个子框架
<frameset rows="30%,70%">
<frame src="left.html" name="frame1"/>
<frame src="main.html" name="frame2"/>
</frameset>
在frame1中可以使用如下语句来引用frame2。
self.parent.frames["frame2"]
4、
不同层次框架间的相互引用
框架的层次是针对顶层框架而言的。当层次不同时,只要知道自己所在的层次以及另一个框架所在
49
《Java快车---基础教程》
www.javakc.com TEL:010-62972039
的层次和名字,利用框架引用的window对象性质,就可以很容易地实现互相访问,例如:
self.parent.frames["childName"].frames["targetFrameName"]
5、
对顶层框架的引用
和parent属性类似,window对象还有一个top属性,它表示对顶层框架的引用,可以用来一
个框架自身是否为顶层框架,例如:
top.window.formA.username.value="javakc";
也可以采用下面代码验证本框架是否为顶层框架
if(self==top){
//too do
}
对于框架的引用就是对“window”对象的引用,利用window对象的location属性,可以改变
框架的导航,例如
window.frames[0].location="index.html";
这就是将页面中的第一个框架的页面重定向到index.html,利用这个性质,甚至可以使用一条
链接来更多的框架,例如:
<frameset rows="30%,70%">
<frame src="left.html" name="frame1"/>
<frame src="main.html" name="frame2"/>
</frameset>
<a href="frame1.location='index.html';frame2.loaction='top.html'">link</a>

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics