父页面与子页面的相互调用

一、在页面里用 open 打开的子页面:

1、子页面调用父页面的方法,包括子页面给父页面传值:  

   

window.opener.methodName();
window.opener.methodName(param1,param2);
 

 

2、父页面关闭子页面:在父页面 

   

openWin=window.open("");
function bClick(){
     openWin.close();
}

 

 

二、在Iframe 的子页面里

   子页面给父页面的Div赋值

   

parent.window.document.getElementByIdx_x('id').innerHTML='';

 

   调用父页面的方法

   

window.parent.window.methodName();

 

   刷新父页面

  

window.parent.location.reload();

 

 

 

open  打开的属性

 

window.open(pageURL,name,parameters)

 
其中:
pageURL 为子窗口路径
name 为子窗口句柄
parameters 为窗口参数(各参数用逗号分隔)

参数 | 取值范围 | 说明

alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后
alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上
depended | yes/no | 是否和父窗口同时关闭
directories | yes/no | Nav2和3的目录栏是否可见
height | pixel value | 窗口高度
hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键
innerHeight | pixel value | 窗口中文档的像素高度
innerWidth | pixel value | 窗口中文档的像素宽度
location | yes/no | 位置栏是否可见
menubar | yes/no | 菜单栏是否可见
outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度
outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度
resizable | yes/no | 窗口大小是否可调整
screenX | pixel value | 窗口距屏幕左边界的像素长度
screenY | pixel value | 窗口距屏幕上边界的像素长度
scrollbars | yes/no | 窗口是否可有滚动栏
titlebar | yes/no | 窗口题目栏是否可见
toolbar | yes/no | 窗口工具栏是否可见
Width | pixel value | 窗口的像素宽度
z-look | yes/no | 窗口被激活后是否浮在其它窗口之上

 

(1)子页面调用父页面的方法或者变量:

window.parent.方法()或者变量名
window.parent相当于定位到父页面  之后的操作和在父页面中写代码一样写

window.parent.aa();//调取aa函数
window.parent.bb;//调取bb变量

例如:想在子页面中得到id为aaa的文本框的值

window.parent.$("#aaa").val();//这种写法的前提是引用了jquery 

window.parent.getElementById("aaa").value; //js的写法

 (2)父页面调取子页面

主要是通过contentWindow定位到子页面

 
document.getElementById("childframe").contentWindow.childtest();
//调取子页面中的childtest方法   js的写法
1. 父页面获取子页面元素:(jquery写法)
    格式:$("#iframe的ID").contents().find("#iframe中的控件ID").click(); 
    实例:$("#ifm").contents().find("#iBtnOk").click(); // ifm 为