日期:2014-05-16 浏览次数:20538 次
Javascript 弹出窗口总结 
1: window.open 
<!-- 
window.open('page.html', 'newwindow', 'height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no') 
//写成一行 
--> 
参数解释: 
window.open 弹出新窗口的命令; 
'page.html' 弹出窗口的文件名; 
'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替; 
height=100 窗口高度; 
width=400 窗口宽度; 
top=0 窗口距离屏幕上方的象素值; 
left=0 窗口距离屏幕左侧的象素值; 
toolbar=no 是否显示工具栏,yes为显示; 
menubar,scrollbars 表示菜单栏和滚动栏。 
resizable=no 是否允许改变窗口大小,yes为允许; 
location=no 是否显示地址栏,yes为允许; 
status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许; 
2: showModalDialog()、showModelessDialog() 
(1) window.showModalDialog() 模态对话框 
模态对话框始终有焦点(焦点不可移走,直到它关闭)。 
(2) window.showModelessDialog() 非模态对话框 
由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。 
不必用window.close()去关闭它, 
当以非模态方式[IE5]打开时, 打开对话框的窗口仍可以进行其他的操作, 
即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。 
(3) 使用方法如下: 
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures]) 
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeatures]) 
参数说明: 
sURL 
必选参数,类型:字符串。用来指定对话框要显示的文档的URL。 
vArguments 
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。 
对话框通过 window.dialogArguments 来获取传递进来的参数, 通过 window.returnValue 来进行回传参数。 
sFeatures 
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。 
dialogHeight 对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。 
dialogWidth: 对话框宽度。 
dialogLeft: 距离桌面左的距离。 
dialogTop: 离桌面上的距离。 
center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。 
help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。 
resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。 
status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。 
scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。 
? 还有几个属性是用在HTA中的,在一般的网页中一般不使用。 
dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。 
edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。 
unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。 
3. 父窗口刷新问题 
(1) 用window.open()打开的窗口 
window.opener.location.reload(); 
(2) 用showModalDialog()打开的窗口 
window.parent.dialogArguments.document.execCommand('Refresh'); 
下面是showModalDialog/showModelessDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.关闭刷新父窗口,希望对象我这样的WEB开发的菜鸟有所帮助. 
(一)showModalDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口. 
farther.html 
--------------------------- 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Generator" CONTENT="EditPlus"> 
<META NAME="Author" CONTENT=""> 
<META NAME="Keywords" CONTENT=""> 
<META NAME="Description" CONTENT=""> 
<script language="javascript"> 
<!-- 
function openChild(){ 
var k = window.showModalDialog("child.html",window,"dialogWidth:335px;status:no;dialogHeight:300px"); 
if(k != null) 
document.getElementById("txt11").value = k; 
} 
//--> 
</script> 
</HEAD> 
<BODY> 
<br>传递到父窗口的值:<input id="txt9" type="text" value="3333333333333"><br> 
返回的值:<input id="txt11" type="text"><br> 
子窗口设置的值:<input id="txt10" type="text"><br> 
<input type ="button" value="openChild" onclick="openChild()"> 
</BODY> 
</HTML> 
--------------------------- 
child.html 
-------- 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Generator" CONTENT="EditPlus"> 
<META NAME="Author" CONTENT=""> 
<META NAME="Keywords" CONTENT=""> 
<META NAME="Description" CONTENT=""> 
<meta http-equiv="Expires" CONTENT="0"> 
<meta http-equiv="Cache-Contro