JS內嵌多個頁面,頁面之間如何更快捷的查找相關聯的頁面

假設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;
            }
        }
    });

}
相關文章
相關標籤/搜索