模式窗口window.showModalDialog()的用法

模式窗口的用法
一、问题:

    我想弹出一个窗口,然后在弹出的窗口里,选择或输入一些信息,要求这些信息返回到父页面。
建立父页面:a.htm



   
   


   

   
   
   
   




建立子页面:b.htm



   

   



   


   

    姓名:

    年龄:
   
   




这里利用了模式窗口window.showModalDialog(),利用window.returnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures]),我们可以打开一个模态窗口,该窗口的优点是限制用户只能对当前的页面进行操

作,而对其父页面不能进行操作,常用于向导或者信息获取页面。利用其中的vArguments我们可以在父页面和弹出的页面中进行参数的传递,参数可以为自定义的对象,也可以传递父页面中任何一个控件的引用,这使得我们可以很容

易的来操作父页面中的各个元素,使得参数的传递变得非常容易。

二、第2个参数的讨论
showModalDialog("子页面地址","向子页面传递参数","子页面外观设置"),关于参数的详细设置看最后的注释,这里主要研究下第2个参数。
1.第2个参数为自定义对象
我们可以定义一个javascript对象,然后定义各种自定义属性的值,然后可以将此对象传递到子页面中。
例:将父页面的信息封装成一个对象,然后将该对象传递给子页面。
父页面:oneParent.htm



    父页面向子页面传递自定义对象参数
   


   

        姓名:
        年龄:
       
   




子页面:oneSon.htm



   

   


   


   

    姓名:

    年龄:
   
   




 以上代码中,文档全部加载完,才执行window.onload指定函数,以找到document.forms[0].txtName对象,如果去掉,window.οnlοad=function(){}直接写大括号里的代码,则必须把这个JS代码块房到之后才能正确运行,否则出现运行时间错误,找不到document.forms[0].txtName对象

2.第2个参数是父页面的一个元素
我们可以将父页面中元素对象的引用传递给子页面,通过该引用我们可以访问父页面中的该元素对象。
例:其中利用元素对象的引用我们可以操纵父页面的元素对象的属性。
父页面:twoParent.htm



    父页面向子页面传递父页面元素

   



   

   

        姓名:
        年龄:
       
   

   




子页面:twoSon.htm



   

   


   


   

   

   

   
   
   
   
   
   




      这里注释掉window.οnlοad=function(){},直接写大括号里的代码,目的让JS代码先加载,后加载里的元素,否则出现找不到对象infoKeYi的错误。

3.第2个参数是window.
如果第2个参数是window,这样可以取得父窗口的一些数据和方法。如:
//取得父窗口的JS变量 var
window.dialogArguments.父窗口中的变量;
//获得父窗口的对象和属性
window.dialogArguments.form1.父窗口中控件name.value ;
//调用父窗口的方法 fun
window.dialogArguments.父窗口中的方法 ;
父页面:threeParent.htm



    父页面向子页面传递父页面元素
   


   

   

        姓名:
       
   

   




子页面:threeSon.htm



   

   


   


   

   

   

   
    姓名:

    年龄:

    问候:

   
   




三、注释:
1、window.open()参数:
例如:


 参数解释:

2、window.showModalDialog()参数:
vReturnValue=window.showModalDialog(sURL    [,    vArguments]    [,sFeatures])  
例如:

参数说明:  
   sURL--  
   必选参数,类型:字符串。用来指定对话框要显示的文档的URL。  
   vArguments--  
   可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。  
   sFeatures--  
   可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。  
   1.dialogHeight    :对话框高度,不小于100px,IE4中dialogHeight    和    dialogWidth    默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。  
   2.dialogWidth:    对话框宽度。  
   3.dialogLeft:    离屏幕左的距离。  
   4.dialogTop:    离屏幕上的距离。  
   5.center:    {yes|no|1|0}:窗口是否居中,默认yes,但仍可以指定高度和宽度。  
   6.help:    {yes|no|1|0}:是否显示帮助按钮,默认yes。  
   7.resizable:    {yes|no|1|0}    [IE5+]:是否可被改变大小。默认no。  
   8.status:    {yes|no|1|0}    [IE5+]:是否显示状态栏。默认为yes[    Modeless]或no[Modal]。  
   9.scroll:{    yes|no|1|0|on|off}:指明对话框是否显示滚动条。默认为yes。  
   下面几个属性是用在HTA中的,在一般的网页中一般不使用。  
   10.dialogHide:{    yes|no|1|0|on|off}:在打印或者打印预览时对话框是否隐藏。默认为no。  
   11.edge:{    sunken|raised}:指明对话框的边框样式。默认为raised。  
   12.unadorned:{    yes|no|1|0|on|off}:默认为no。


你可能感兴趣的:(javascript,input,button,function,server,div)