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对象操作父窗口了。