您的位置:首页 > Web前端 > JavaScript

js中子窗口与父窗口的互操作

2015-07-13 15:41 465 查看
1.打开一个子窗口

window.open(url,name,params):该方法将返回一个window对象

其中url为子窗口的路径,name为子窗口名称,该名称可以是_blank,_top,_parent等内建名称。

params为子窗口参数,窗口参数可以为:


top=# 窗口顶部离开屏幕顶部的像素数

left=# 窗口左端离开屏幕左端的像素数

width=# 窗口的宽度

height=# 窗口的高度

menubar=... 窗口有没有菜单,取值yes或no

toolbar=... 窗口有没有工具条,取值yes或no

location=... 窗口有没有地址栏,取值yes或no

directories=... 窗口有没有连接区,取值yes或no

scrollbars=... 窗口有没有滚动条,取值yes或no

status=... 窗口有没有状态栏,取值yes或no

resizable=... 窗口给不给调整大小,取值yes或no

2.打开一个模态窗口,即是对话框。

window.showModalDialog(sURL,vArguments,sFeatures) :创建模态对话框,传递一个父窗口对象作为参数。

window.showModelessDialog(sURL,vArguments,sFeatures) :创建非模态对话框,传递一个父窗口对象作为参数。

其中sURL为窗口路径,vArguments为传递的参数,sFeatures为对话框配置参数。

sFeatures的参数有:

dialogHeight:对话框高度

dialogWidth: 对话框宽度。

dialogLeft: 距离桌面左的距离。

dialogTop: 离桌面上的距离。

center: 窗口是否居中,默认yes,取值范围{yes | no | 1 | 0 }。  

help: 是否显示帮助按钮,默认yes,取值范围 {yes | no | 1 | 0 }。

  resizable: 是否可被改变大小,默认no,取值范围 {yes | no | 1 | 0 }。

  status: 是否显示状态栏,默认为yes[ Modeless]或no[Modal],取值范围{yes | no | 1 | 0 }。

scroll:指明对话框是否显示滚动条,默认为yes,取值范围{ yes | no | 1 | 0 | on | off }。

dialogHide:在打印或者打印预览时对话框是否隐藏,默认为no,取值范围{ yes | no | 1 | 0 | on | off }。

edge:指明对话框的边框样式,默认为raised,取值范围{ sunken | raised }。

unadorned:默认为no,取值范围{ yes | no | 1 | 0 | on | off }。

模态对话框和非模态对话框的区别在于:

非模态对话框不需要window.close()关闭,当url改变时自动关闭,焦点可以不是窗口,而模态对话框的焦点不能转移。

注意:模态方法创建的窗口都不能让子窗口对父窗口直接进行操作,必须在创建的时候将父窗口传入子窗口,子窗口才能操作父窗口。

3.子窗口与父窗口的通信

a.通过window.open()方式打开的子窗口

window.opener.location.reload(); //子窗口刷新父窗口

window.opener.location.href //获取父窗口href

window.opener.locaiton.pathname //获取父窗口路径名

window.location.href=window.location.href ; //重新定位当前页面

window.location.reload(); //刷新当前页面

window.close();//关闭当前页面

b.通过模态打开的子窗口

创建时子窗口时传入父窗口对象。

var newWin=window.showModelDialog(url,window,''); //window为父窗口对象

newWin.open();

//在子窗口中获取父窗口父窗口对象


var parent=widnow.dialogArguments;

这样就可以通过parent对象操作父窗口了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: