Js使用window.parent ,window.top,window.self判斷iframe巢狀
阿新 • • 發佈:2019-01-22
在應用有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()實現巢狀中指定視窗的重新整理。