模态窗口window.showModalDialog 
10/3/2012 5:51:39 PM
	 1、基本知识 
	
		
			| showModalDialog() (IE 4+ 支持) showModelessDialog() (IE 5+ 支持)
 window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框。
 window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。
 | 
	
	    2、使用方法
	 
	
		
			| vReturnValue=window.showModalDialog(sURL[,vArguments][,sFeatures]); vReturnValue=window.showModelessDialog(sURL[,vArguments][,sFeatures]);
 | 
	
	    3、参数说明
	 
	
		
			| 参数名称 | 性质 | 类型 | 作用 | 
		
			| sURL | 必选 | 字符串 | 用来指定对话框要显示的网页的URL。 | 
		
			| vArguments | 可选 | 变体 | 用来向对话框传递参数。参数类型不限。 对话框通过window.dialogArguments来取得传递进来的参数。
 | 
		
			| sFeatures | 可选 | 字符串 | 用来描述对话框的外观等信息 | 
	
	    4、sFeatures参数说明
	 
	
		
			| 参数名称 | 参数属性 | 说明 | 
		
			| dialogHeight | npx | 对话框高度,不小于100px | 
		
			| dialogWidth | npx | 对话框宽度 | 
		
			| dialogLeft | npx | 离主窗口左的距离 | 
		
			| dialogTop | npx | 离主窗口上的距离 | 
		
			| center | {yes | no | 1 | 0 } | 窗口是否居中,默认yes | 
		
			| help | {yes | no | 1 | 0 } | 是否显示帮助按钮,默认yes | 
		
			| resizable | {yes | no | 1 | 0 } | 是否可改变大小,默认no | 
		
			| status | {yes | no | 1 | 0 } | 是否显示状态栏,默认为yes[ Modeless]或no[Modal] | 
		
			| dialogHide | { yes | no | 1 | 0 | on | off } | 在打印或者打印预览时对话框是否隐藏,默认为no | 
		
			| scroll | { yes | no | 1 | 0 | on | off } | 指明对话框是否显示滚动条,默认为yes | 
		
			| edge | { sunken | raised } | 指明对话框的边框样式,默认为raised | 
		
			| unadorned | { yes | no | 1 | 0 | on | off } | 默认为no | 
		
			| 注意:dialogHide,edge,unadorned这三个属性是用在HTA(HTML Aplication)中的,一般网页上用不到。 | 
	
	    5、参数传递 通过vArguments来传递参数,类型不限制,对于字符串类型,最大为4096个字符,也可以传递对象,例如:
	 
	
		
			| parent.htm <script>
 window.showModalDialog("sun.htm","传递进去的参数","help:no;scroll:no");
 </script>
 sun.htm
 <script>
 alert("传来的参数:" + window.dialogArguments);
 </script>
 | 
	
	    6、返回值 通过window.returnValue向打开对话框的窗口返回信息,也可以是对象。例如:
	 
	
		
			| parent.htm <script>
 result=window.showModalDialog("son.htm","","help:no;scroll:no");
 alert(result);
 </script>
 son.htm
 <script>
 window.returnValue="这里存放返回的结果";
 </script>
 | 
	
	    7、防止在模态窗口中提交后新开一窗口
	   在页面的 <body>前加入<base target="_self">
	
	    8、调用父窗口的方法同时传递参数
	 
	
		
			| parent.htm <script>
 function show(){//父窗口的方法
 alert("show");
 }
 var arg=new Object();//传递进去的参数
 arg.win=window;//把当前窗口的引用当参数传进去
 arg.str="argument";//要传进去的其他参数
 window.showModalDialog("son.htm",arg,'help:no');
 </script>
 son.htm
 <script>
 var arg=window.dialogArguments;
 alert(arg.str);
 arg.win.show();//调用父窗口的方法
 </script>
 |