JS内嵌多个页面,页面之间如何更快捷的查找相关联的页面
假设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;
}
}
});
}
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!