今天在看公司代码时,发现JSP页面有时会使用window.open()来获取一些数据,有时又会使用window.showModalDialog()来获取。简单在网上查了一下二者,又结合自己的理解,现总结如下:

    1.window.open()用法

     window.open(pageURL,name,parameters) 

     其中:
          pageURL 为子窗口路径 
          name 为子窗口句柄 
          parameters 为窗口参数(各参数用逗号分隔)

     示例:

window.open("/bisTree.jsp?groupId=<%=groupId%>,'_blank',"height=650, width=350,top=150,left=200,scrollbars=yes, resizable=no,location=no, status=yes");

     那window.open()又是如何获得数据的呢?在由此方法打开的页面,含有一个opener 属性,代码打开此页面的父窗口,可以通过该属性获得此页面的数据。

     示例:在bisTree.jsp页面中window.opener.document.getElementById("groupName").value=document.form.groupName.value;

    2.window.showModalDialog()用法

    创建一个显示HTML内容的模态对话框

    vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])

    数说明:
      sURL--

     必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
     vArguments
--
     可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通      过window.dialogArguments来取得传递进来的参数。
     sFeatures
--
     可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分        号“;”隔开。

   示例:

 

    var str=window.showModalDialog('getUserId.jsp?');

    在打开的模式窗口中,通过window.returnValue获得返回值

    示例:

window.returnValue=document.getElementById('userId').value;

需要注意的是,window.showModalDialog()方法必须执行完才能操作,而window.open()则可以。

参考网址:http://www.cnblogs.com/MikeChen/archive/2010/10/11/1847806.html

http://www.cnblogs.com/zhangyi85/archive/2009/09/03/1559594.html