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