本个现要实现这样一个功能:在模态对话框A.jsp中打开一个新的模态对话框B.jsp,当我关闭B.jsp时,怎么自动刷新A.jsp?谢谢!

解决方案 »

  1.   

    在A.jsp中的showModalDialog("B.jsp");后面加上
    parent.window.showModalDialog(location.href);
      

  2.   

    模态对话框是不能用opener引用父窗口的,而是需要父窗口主动传递指针变量的
    这个window.showModalDialog有第二个参数,就是做这个用的,你需要把window穿过去,就是这样
    var returnValue=showModalDialog('2.html',window,'dialogWidth:520px;dialogHeight:510px;help:no;center:yes;resizable:no;status:no;scroll:no');
    通过window.dialogArguments就可以应用父窗口了。在你子窗口(b.jsp)的关闭事件中加上:
    window.dialogArguments.location.reload()ok啦
      

  3.   

    部分代码如下:
    A.jsp:
     function jianche_add(){
       var url="jianche_01_01_add.jsp";
       var id=getQuery('id');
       var rtn=displayModalDialog(url+'?id='+id+'&rand='+Math.random(),400,600);
       if(rtn!=null&&rtn!="")
       location.reload();
      }   <intput type="button" name="add" value="增加" onClick="jianche_add();">
    B.jsp(即上面的jianche_01_01_add.jsp):
      window.close();
      

  4.   

    displayModalDialog()是我自己写的,在这个函数里调用showModalDialog();
      

  5.   

    想了一个变通的办法搞定了,谢谢大家.
    把我的办法告诉大家,以便于大家遇到同样的问题时参考:在A.jsp中增加了个超链接,内容为空,这样是为了不在页面中显示:
    <a id="reload" href="当前页面url"></a>
    在本例中超链接我是这样写的:<a id="reload" href="A.jsp"></a>在打开模态对话框的地方这样写:
      showModalDialog("B.jsp");
      reload.click();
    ok,这样就搞定了,呵呵,这个问题困扰了我一天.