1 window对象
- BOM的核心对象是window,表示浏览器的一个实例。
- window对象是ECMAScript规定的global对象。在全局作用域中声明的变量、函数都会成为window对象的属性和方法。
- 全局对象不能通过delete操作符删除。( [[Configurable]] 特性值被设置为false)
- 直接在window对象上定义的属性可以通过delete操作符删除。
2 窗口关系及框架
2.1 页面框架(HTML)
- 所谓框架就是页面中嵌套其他页面。
- 在HTML中使用
<frame>
标签定义框架,以src属性指引框架页面。 - 用
<frameset>
标签定义框架集,用于包含框架,并用元素特性确定子框架布局。 <frameset>
标签不能与body
共用。- 若浏览器不支持框架则使用
noframes
,并在此标签内使用<body>
标签。
<frameset rows="200,*">
<frame src="frame1.html" name="topFrame">
<frameset cols="30%,30%,*">
<frame src="frame2" name="leftFrame">
<frame src="frame3" name="centerFrame">
<frame src="frame4" name="rightFrame">
</frameset>
</frameset>
<noframes>
<body></body>
</noframes>
分析:
1. frameset可以包含多个子框架,同时子框架可以使用frameset包含多个孙子辈框架。
2. frameset标签包含rows和cols属性,用于框架集内包含的子框架的布局。
- rows和cols属性可使用整数与百分数来定义宽高,使用*表示剩余宽高自动填充。
frameset标签属性
属性 | 值 | 描述 |
---|---|---|
cols | pixels/%/* | 定义框架集中列的数目和尺寸。有关 cols 属性的详细信息。 |
rows | pixels/%/* | 定义框架集中行的数目和尺寸。有关 rows 属性的详细信息。 |
frame标签属性
属性 | 值 | 描述 |
---|---|---|
frameborder | 0或1 | 规定是否显示框架周围的边框。 |
longdesc | URL | 规定一个包含有关框架内容的长描述的页面。 |
marginheight | pixels | 定义框架的上方和下方的边距。 |
marginwidth | pixels | 定义框架的左侧和右侧的边距。 |
name | name | 规定框架的名称。 |
noresize | noresize | 规定无法调整框架的大小。 |
scrolling | yes/no/auto | 规定是否在框架中显示滚动条。 |
src | URL | 规定在框架中显示的文档的 URL。 |
2.2 页面框架(BOM)
- 若页面中包含框架,则每个框架都有自己的window对象,且保存在window对象的frames属性中。
- 可通过数值索引或框架名访问相应的window对象。
- window.frames[0] 通过索引访问(从0开始,从左至右,从上到下)。
- window.frames[‘topFrame’] 通过框架名访问。
- window.top属性访问最外层框架。
- window.parent访问父级框架。
- 当没有框架时,window.top===window.parent===window。