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;
}
}
});
}
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!