JS内嵌多个页面,页面之间如何更快捷的查找相关联的页面

摘要:假设parent为P页面,P页面有两个子页面,分别为B页面和C页面;B页面和C页面分别内嵌一个iframe,分别为:D页面和E页面,现在通过B页面的内嵌页面D的方法refreshEpage(eUrl)来加载内嵌页面E的内容.

假设parent为P页面,P页面有两个子页面,分别为B页面和C页面;B页面和C页面分别内嵌一个iframe,分别为:D页面和E页面,现在通过B页面的内嵌页面D的方法refreshEpage(eUrl)来加载内嵌页面E的内容.

需求:通过页面E如何快速找到页面D?

常规的做法是通过E页面通过.parent找到页面B,再通过页面B找到里面内嵌的页面E


更方便的做法可以这样:

在页面D里面定义一个全局变量var dPage;在D页面调用refreshEpage(eUrl)来刷新页面E的内容的时候,在refreshEpage()方法中吧D页面的window对象传递过去,此时需要给方法增加一个额外参数refreshEpage(eUrl,dPageVal),这样,D页面这么调用:refreshEpage(eUrl,window);

在E页面加载完成之后,让dPage = dPageVal,这样在E页面里面可以直接使用D页面的window对象

 

以Easyui的layout的复杂布局来说

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

}

 

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_5928