submit的事件是在后台写的吗,重定向一下父页面不就行了

解决方案 »

  1.   

    target="_parent"加这个呢?不知道有用没
      

  2.   

    window.opener.location.href=window.opener.location.href;window.close();
    window.opener.location.replace(window.opener.document.referrer);window.close();
      

  3.   

    submit提交后台处理,后台重定向url,当前台界面刷新完后,是不是有脚本执行将你的窗口有打开了,重叠窗口了?
      

  4.   

    子窗口提交后跳转到一个空白页面,此空白页面onload方法里close子窗口,返回特定returnValue。父窗口此时showModalDialog刚执行完,得到特定returnValue判断后直接刷新,location.href或者重新提交都可以。
      

  5.   

    submit之后 弹出窗直接关闭应该就可以 楼主弹出来的是一个jsp吧 然后服务端重定向一下父页面
    我没试过 个人理解 楼主之所以会出现那种情况是不是重定向错了页面或者说重定向之后父页面又执行弹出窗的js了 js功能绑到按钮上试试
      

  6.   


    这样的话  会不会存在短暂的用户等待时间--close之后 刷新之前, 前辈有更好的方法么
      

  7.   


    为什么有等待时间?close不需要时间,起码你看不出来。刷新需要等待那是你刷新慢,不是这个方法的事。你刷新不需要时间,自然就没等待,你刷新本身就慢,换什么方法都有等待。
      

  8.   

    好像是window.parent.location.href="action";
      

  9.   

    后台写服务端跳转可以么 redirect
      

  10.   

    action里不是可以用PrintWriter
    然后用write方法比如
    out.write("<script type='text/javascript'>") ;
    out.write("window.close();") ;
    out.write("window.opener.query();") ;
    out.write("</script>");query()就是显示你页面数据的js方法
      

  11.   

    <script>
      window.onbeforeunload=function window.onbeforeunload(){
       window.opener.location.reload();
      }
    </script>
      

  12.   

    个人觉得,根本就没必要在一个新页面中更新记录。你可以在当前页面中定义一个div(默认隐藏,点击更新时显示)进行更新(更新时可以用ajax,免得提交整个页面),后台数据保存后,往前台返回一个状态量,如果没错误,前台js执行window.location.reload()刷新页面。如果在新页面中进行更新,用在页面的submit按钮处理程序中往页面中添加js代码 window.opener.location.href=window.opener.location.href;window.close();应该没问题。(但这样页面内容已经传到客户端,只是在显示之前关闭了,所有感觉不太好,当你的更新页面的内容较多是本身就是一种流量的浪费)
      

  13.   

    你是用struts2写的话,就是struts.xml的result组件写成这样:
    <result type="redirectAction" name="success">
      <param name="namespace">命名空间</param>
      <param name="actionName">请求名</param>
    </result>
    用servlet怎么写我就不写了,自己网上找吧
      

  14.   

    实现过这样的功能:
    1,点击submit提交action---forms[0].submit();
    2,在Action的方法中处理完数据添加以下代码即可: 
    String js="<script language=JavaScript>window.opener.location.reload();
                                           window.close();</script>";
    PrintWriter out = null;
    try {
        out = httpServletResponse.getWriter();
        }
        catch (IOException ex) 
        {
        }
        out.print(js);
        out.close();妥妥的!!
      

  15.   

    <script type="text/javascript">
    function add() {
    document.getElementById("myform").submit();
    self.opener.reLoad();
    setTimeout("sclose()", 50);
    }
    function sclose() {
    window.open('','_self');
    window.close();
    }
    </script>
      

  16.   

    点击事件后请求个ajax。返回正常后再刷父窗口,关窗
    window.opener.reload();
    window.close();
      

  17.   


    为什么有等待时间?close不需要时间,起码你看不出来。刷新需要等待那是你刷新慢,不是这个方法的事。你刷新不需要时间,自然就没等待,你刷新本身就慢,换什么方法都有等待。
    能不能给个代码瞧瞧啊     这样说是可以   没代码还是写不出来啊亲
      

  18.   

    就是父窗口肿么抓那个returnValue的值
      

  19.   

    window.opener 的用法在一般的用法中,只是用来解决关闭窗口时不提示弹出窗口,   而对它更深层的了解一般比较少。其   实   window.opener是指调用window.open方法的窗口。
         在工作中主要是用来解决部分提交的。这种跨页操作对工作是非常有帮助的。
    如果你在主窗口打开了一个页面,并且希望主窗口刷新就用这个,打开页面的window.opener就相当于
    主窗口的window。
    主窗口的刷新你可以用
    window.opener.location.reload();
    如果你用虚拟的目录:如struts的*.do会提示你重试你可以改成这样 window.opener.yourformname.submit()
    就好了
      

  20.   

    在你关闭子窗口的js代码前面,添加一句window.opener.location.reload();
    function sss(){         xxxx;
              ..
             xxxx;
             window.opener.location.reload();
             close();}