在页面A中调用函数window.showModalDialog
得到返回的值
在页面B中传出:window.returnValue=结果

解决方案 »

  1.   

    楼上的,我试过了,返回的值是空.我是要给返回A页面的<input name="username">
      

  2.   

    A.htm:document.form1.username.value=window.showModalDialog("B.htm");B.htm:window.returnValue="搜索结果";
    window.close();
      

  3.   

    如果你要的是jsp,可以试试看我的办法。我用过很多次,都是好用的。
    首先要设定子窗口的form,这里target要指向你的父窗口。
    <form method="POST" name="myform" target="hiddenFrm" action="{//WebPath}/MyServlet">
    然后程序到servlet里,就是上边代码的MyServlet,MyServlet最后返回的是父窗口。而父窗口里接收MyServlet里传过来的值,并显示。这样就可以做到,子窗口不刷新,而父窗口刷新后,显示需要的数据。
      

  4.   

    var a=name;
    window.historyback(-1);
    parent.opener.document.form1.username.value=a
    window.close();
      

  5.   

    怎么会是parent.opener?
    应该直接用opener.document.form1.username.value=name
      

  6.   

    用Ajax实现查询,那么opener会保持原来的
      

  7.   

    在a页面用windwo.open打开。在b页面用opener就返回到a页面。下面有代码:
    window.open('../../BM/BM0102/BM0102ResultAddressSearch.jsp?Address='+AddressName+'&formId=0&AddressSearchStr='+AddressSearchValue,'new form',500,200);0当前的表单号,AddressName表单里项name名称
    b页面代码: 
    var addressStr="<%=new String(request.getParameter("Address").trim().getBytes("ISO8859_1"),"GBK")%>"
      var formId="<%=new String(request.getParameter("formId").trim().getBytes("ISO8859_1"),"GBK")%>";
       opener.document.forms[formId].elements[addressStr].value=document.all.sa.po.value;
       self.close();
      

  8.   

    window.returnValue
    刷新后用opener不行,如果是ajax刷新可能可以,没试过