假設parent爲P頁面,javascript
P頁面有兩個子頁面,分別爲B頁面和C頁面;java
B頁面和C頁面分別內嵌一個iframe,分別爲:D頁面和E頁面佈局
如今經過B頁面的內嵌頁面D的方法refreshEpage(eUrl)來加載內嵌頁面E的內容.ui
需求:經過頁面E如何快速找到頁面D?this
常規的作法是經過E頁面經過.parent找到頁面B,再經過頁面B找到裏面內嵌的頁面Espa
更方便的作法能夠這樣:code
在頁面D裏面定義一個全局變量var dPage;在D頁面調用refreshEpage(eUrl)來刷新頁面E的內容的時候,在refreshEpage()方法中吧D頁面的window對象傳遞過去,此時須要給方法增長一個額外參數refreshEpage(eUrl,dPageVal),這樣,D頁面這麼調用:refreshEpage(eUrl,window);對象
在E頁面加載完成以後,讓dPage = dPageVal,這樣在E頁面裏面能夠直接使用D頁面的window對象ip
以Easyui的layout的複雜佈局來講iframe
function refreshEpage(eUrl,dPageVal){ var tabs = $("#tabs").tabs("tabs"); $.each(tabs,function(index){ var name = $(this).attr("name"); if(name == 'E頁面'){ var panel = $(this); panel.panel('options').href = eUrl; panel.panel('options').onLoad = function(){ //在E頁面加載完成以後,使其裏面的變量的值爲D頁面的window對象,這樣在E頁面中能夠隨意獲取D頁面的元素或者方法 panel.panel('body').find("iframe[0].contentWindow.dPage = dPageVal; } } }); }