BOM:Browser Object Model,瀏覽器對象模型。BOM是由一系列的對象組成的。其結構如下圖所示。

可以看出,window對象是整個BOM的核心,因此,先討論window對象。
(1)使用框架集的情況下
使用框架集合的情況下,每個框架都由他自身的window對象表示,存放在frames集合中。可以通過數字或者名字對框架進行索引。看例子:
<html>
<head></head>
<frameset rows="100,*">
<frame src="frame.html" name="topFrame" />
<frameset cols="50%,50%">
<frame src="anothorFrame.html" name="leftFrame"/>
<frame src="yetAnothorFrame.html" name="rightFrame"/>
</frameset>
</frameset>
</html> 我們可以通過window.frames[0]或者window.frames["topFrame"]引用頂層的框架。由于window對象是整個BOM的核心,因此再寫上面的代碼時,可以忽略window對象不寫,直接寫frames[0]或者frames["topFrame"]即可。
在框架中使用window對象,代表的是該框架本身。因此,還引入了top對象。該對象指向的是對頂層的框架,也就是瀏覽器窗口。
此外,還有一個parent對象。顧名思義,parent指向該框架的父框架。看例子。
<!--parent.html-->
<html>
<head></head>
<frameset rows="100,*">
<frame src="frame.html" name="topFrame" />
<frameset cols="50%,50%">
<frame src="anothorFrame.html" name="leftFrame"/>
<frame src="anotherframeset.html" name="rightFrame"/>
</frameset>
</frameset>
</html> 其中,anotherframeset.html的代碼如下:
<!--anotherframeset.html-->
<html>
<head>
<title></title>
</head>
<body>
<frameset cols="100,*">
<frame src="red.html" name="redFrame"/>
<frame src="blue.html" name="blueFrame"/>
</frameset>
</body>
</html>
如果在red.html或者blue.html中,parent指向parent.html中的rightFrame。如果代碼寫在parent.html中的topFrame中,那么parent指向top對象,也就是瀏覽器窗口。還有一個指針self,它總是等于window。
可以看出,window對象是整個BOM的核心,因此,先討論window對象。
(1)使用框架集的情況下
使用框架集合的情況下,每個框架都由他自身的window對象表示,存放在frames集合中。可以通過數字或者名字對框架進行索引。看例子:










在框架中使用window對象,代表的是該框架本身。因此,還引入了top對象。該對象指向的是對頂層的框架,也就是瀏覽器窗口。
此外,還有一個parent對象。顧名思義,parent指向該框架的父框架。看例子。























參考書:
《JavaScript高級編程》Nicolas C. Zakas著, 曹力 張欣 等譯。