window.frames屬性是當前頁面所有框架的集合。要註意的事,這裡並沒有frame和iframe做出區分。而且,無論頁面存不存在框架,window.frames屬性總是存在的,並總是指向window對象本身。 假設我們頁面中有一個iframe元素: 我們可以通過檢查其length屬性來瞭解頁面 ...
window.frames屬性是當前頁面所有框架的集合。要註意的事,這裡並沒有frame和iframe做出區分。而且,無論頁面存不存在框架,window.frames屬性總是存在的,並總是指向window對象本身。
window.frames === window; // true;
假設我們頁面中有一個iframe元素:
<iframe name="myframe" src="hello.html"/>
我們可以通過檢查其length屬性來瞭解頁面中是否存在frame元素。
frames.length; // 1
如果想訪問iframe元素的window對象,可以選擇下麵方法中的任何一種:
window.frames[0]; window.frames[0].window; window frames[0].window.frames; frames[0].window; frames[0];
通過父級頁面,我們可以訪問子frame元素的屬性。例如可有通過下麵方式進行iframe元素的重載。
frames[0].window.location.reload();
同樣的我們可以通過子元素來訪問父級頁面。
frames[0].parent === window
我們可以通過一個叫做top屬性可以訪問到最頂層的頁面:
window.frames[0].window.top === window; // true window.frames[0].window.top === window.top; // true window.frames[0].window.top === top; // true;
除此之外還有一個self屬性,它的作用與window基本相同。
self === window; // true
frames[0].self == frames[0].window; //true
如果frame元素擁有name屬性,我們就可以丟開索引,轉而通過name屬性的值來訪問該frame;
window.frames['myframe'] === window.frames[0]; // true
或者這樣也可以:
frames.myframe === window.frames[0]; // true