window整个浏览器窗口,但是与其中包含的内容无关。当页同中使用框架时,每个框架都会有自己的window对象,这些框架的window对象会被存放在frames集合中,即:浏览器窗口对象的window.frames属性中,并可以通过下标或框架名进行索引。
1. frames属性
frames属性会以集合的方式返回当前窗口中包含的框架。
frameList = window.frames;
frameList是一个frame对象的列表。它的类似于数组,有length属性且可以通过[i]的形式访问。
2. 框架间的访问
2.1 框架内window对象的访问
对于如下一个框架结构:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<frameset rows="300,*">
<frame src="topFrame.html" name="topFrame" />
<frameset cols="40%,60%">
<frame src="leftFrame.html" name="leftFrame" />
<frame src="http://niefengjun.cn" name="bottomFrameme" />
</frameset>
</frameset>
</html>
在上面示例中,可以在任意一个框架的页面中,使用window.frames[i]或window.frames["name"]来访问框架中的window对象,window.frames属性在框架的三个页面中其数据相同。
在window对象中还有一个top属性用于索引框内页面的父页面,top.frames[i]或top.frames["name"]同样可以访问框架中的window对象。
在浏览器环境中,window对象是Global全局对象,frames属性可以直接访问,通过该属性对象也可以访问框架中的window对象。
如,访问示例中的topFrame框架,我们可以使用以下几种方式:
window.frames[0]; window.frames["topFrame"]; top.frames[0]; top.frames["topFrame"]; frames[0]; frames["topFrame"];
2.2 parent与self属性
top属性始终指向框架内子页面的上级window对象,访问上级window对象也可以使用parent属性。parent属性不同于top属性,当页面不存在上级window对象时,将指向当前
为了加以区分,访问当前页面的window对象,可以使用self属性,这个属性始终指向当前页面的window对象。
top、parent、self三个属性之间有相似之处,但三者是为不同目的而设计的。在使用时应该充分了解这几个属性的关系与作用,以便正确的访问指定的window对象。
