多層iframe巢狀使用相互取值
阿新 • • 發佈:2019-01-29
父頁面獲取子頁面元素:
注意:onload事件
jQuery獲取:
$("iframe").contents().find("holder")......;
(巢狀三層,或者更多時)
$('iframe').contents().find('iframe').contents().find("iframe")......
js獲取:
window.frames["holder"].document 或者 window.frames[0].document(不推薦)
(巢狀三層,或者更多時)
window.frames[0].window.frames[0](......).document
補充拓展:(僅供參考)
document.frames 與 window.frames 之間的區別
document.frames 只有IE、Opera 支援,等同於 window.frames。用來取得當前頁面內 window 物件的集合。
在 Firefox、Chorome、Safari中使用 document.frames 不能獲取到 FRAME 元素
window.frames['myframe'] 代替 document.frames('myframe')或document.frames['myframe']。
注意:window.frames只可寫成window.frames['myframe']不能寫成window.frames('myframe')
子頁面獲取父頁面元素:
1、子頁面獲取iframe父頁面的DOM
jQuery獲取:
$("#holder",parent.document)
js獲取:
parent.document.getElementById("holder")
2、子頁面獲取父頁面裡的其他iframe子頁面裡的DOM
jQuery獲取:
$("#holder",window.parent.frames["holder"].document)
js獲取:
window.parent.frames["holder"].document.getElementById("holder")
補充拓展:(僅供參考)
opener 與 parent 之間的區別
opener:
opener用於在window.open的頁面引用執行該window.open方法的的頁面的物件。例如:A頁面通過window.open()方法彈出了B頁面,在B頁面中就可以通過opener來引用
A頁面,這樣就可以通過這個物件來對A頁面進行操作。
parent:
parent用於iframe,frame中生成的子頁面中訪問父頁面的物件。例如:A頁面中有一個iframe或frame,那麼iframe或frame中的頁面就可以通過parent物件來引用A頁面
總結:
parent指父視窗,在FRAMESET中,FRAME的PARENT就是FRAMESET視窗。
opener指用WINDOW.OPEN等方式建立的新視窗對應的原視窗。
parent是相對於框架來說父視窗物件。
opener是針對於用window.open開啟的視窗來說的父視窗,前提是window.open開啟的才有。
注意:onload事件
jQuery獲取:
$("iframe").contents().find("holder")......;
(巢狀三層,或者更多時)
$('iframe').contents().find('iframe').contents().find("iframe")......
js獲取:
window.frames["holder"].document 或者 window.frames[0].document(不推薦)
(巢狀三層,或者更多時)
window.frames[0].window.frames[0](......).document
補充拓展:(僅供參考)
document.frames 與 window.frames 之間的區別
document.frames 只有IE、Opera 支援,等同於 window.frames。用來取得當前頁面內 window 物件的集合。
在 Firefox、Chorome、Safari中使用 document.frames 不能獲取到 FRAME 元素
window.frames['myframe'] 代替 document.frames('myframe')或document.frames['myframe']。
注意:window.frames只可寫成window.frames['myframe']不能寫成window.frames('myframe')
子頁面獲取父頁面元素:
1、子頁面獲取iframe父頁面的DOM
jQuery獲取:
$("#holder",parent.document)
js獲取:
parent.document.getElementById("holder")
2、子頁面獲取父頁面裡的其他iframe子頁面裡的DOM
jQuery獲取:
$("#holder",window.parent.frames["holder"].document)
js獲取:
window.parent.frames["holder"].document.getElementById("holder")
補充拓展:(僅供參考)
opener 與 parent 之間的區別
opener:
opener用於在window.open的頁面引用執行該window.open方法的的頁面的物件。例如:A頁面通過window.open()方法彈出了B頁面,在B頁面中就可以通過opener來引用
A頁面,這樣就可以通過這個物件來對A頁面進行操作。
parent:
parent用於iframe,frame中生成的子頁面中訪問父頁面的物件。例如:A頁面中有一個iframe或frame,那麼iframe或frame中的頁面就可以通過parent物件來引用A頁面
中的物件。這樣就可以獲取或返回值到A頁面中。
3、子頁面獲取最外層DOM
window.top.document.getElementById("login_Name")
總結:
parent指父視窗,在FRAMESET中,FRAME的PARENT就是FRAMESET視窗。
opener指用WINDOW.OPEN等方式建立的新視窗對應的原視窗。
parent是相對於框架來說父視窗物件。
opener是針對於用window.open開啟的視窗來說的父視窗,前提是window.open開啟的才有。