1. 程式人生 > >Js使用window.parent ,window.top,window.self判斷iframe巢狀

Js使用window.parent ,window.top,window.self判斷iframe巢狀

在應用有iframe,甚至含有多層iframe巢狀的頁面中,存在有window.parent,window.top,window.self物件,各個物件的含義介紹如下:

window.self

功能:是對當前視窗自身的引用。它和window屬性是等價的。

語法:window.self

注:window、self、window.self是等價的。

window.parent

功能:返回父視窗。

語法:window.parent

注:如果視窗本身是頂層視窗,parent屬性返回的是對自身的引用。

window.top

功能:返回頂層視窗,即瀏覽器視窗。

語法:window.top

注:如果視窗本身就是頂層視窗,top屬性返回的是對自身的引用;如果視窗僅在一層iframe中,top屬性與parent屬性等價。

通過window.parent ,window.top,window.self可以分別獲取當前視窗、父視窗、頂層視窗的物件引用,我們可以使用這三個物件判斷是否應用有iframe巢狀或者是否有多層iframe巢狀或實現其它功能,舉例如下:

1、 window.top===window.self 為true表示當前視窗就是頂層視窗,沒有iframe應用;為false表示當前視窗不是頂層視窗,存在iframe應用。
2、 window.top===window.parent (window.top!==window.self)為true表示父視窗就是頂層視窗,只有一層iframe巢狀;為false表示父視窗不是頂層視窗,存在多層iframe巢狀。
3、 使用不同物件的location. href實現巢狀中指定視窗的跳轉;使用不同物件的location. reload()實現巢狀中指定視窗的重新整理。