我的初衷是子窗口提交一个表格(表格里面包含数据),然后子窗口就关闭,父窗口就刷新。
于是乎,我就用了这段代码来实现:
<script LANGUAGE="javaScript"> 
<!-- 
function cl(){ 
window.opener.location.reload();
window.close(); 
 } 
--> 
</script> 但是我发现有时候父窗口自动刷新的时候就刷不出最新的数据(有时候可以)。。
我不知道这是什么原因,我猜想是不是表格提交的时候往数据库里面写数据还要一段时候,这时候刷新父窗口并没有获得新的数据??不知道是不是这样,如果是这样该怎么解决呢?ps: 插入数据的代码完全正确,我在不采用这个效果下试了许多次,都可以成功插入。。但我需要实现子窗口关闭父窗口刷新的功能对了,我还有一个问题,我是点击父窗口一个链接弹出子窗口,子窗口与父窗口同时存在。在ie里面是可以的,但是我用sougou浏览器等多标签的,子窗口就变成单独的一个标签栏了。。我不想这样,我希望子窗口和父窗口同时出现在一个视野里面。有点罗嗦,希望有人能帮帮忙

解决方案 »

  1.   

    是缓存的问题
    使用window.opener.location.reload(true);
    true表示不使用缓存,重新从服务器获取
      

  2.   

    你的数据提交是以form来提交还是ajax方式提交?如果是以form的话,提交了以后如果马上刷新父页面,就有可能出现这种现象:服务器插入的动作也许还没响应完成,但父页面已经刷新完成了,所以父页面看不到插入的结果如果是以Ajax方式提交,那你也要保证服务器返回一个信息以后,才执行cl()函数
      

  3.   

    window.opener.location.reload();不就是刷新么父窗口么。。
      

  4.   

    我是用form表提交的 
    input type=submit onclick=“cl()”;我就这样的。
      

  5.   

    问题就出在这了,一提交马上刷新,就有可能出现我说的现象
    你应该等待服务器执行完成以后,再执行c1();
    可以指定form的target为_self,而在action所指定的页面中执行c1中的代码
      

  6.   

    我刚学jsp不太懂诶。我form就是这样的<form method="post" action="modify.jsp">
    跳到modify去执行插入数据库的语句。你说应该在哪里加呢?不明白
      

  7.   

    <form method="post" action="modify.jsp" target="_self">
    在modify.jsp中,如果插入成功就执行c1()中的代码
      

  8.   

    target="_self" 是干嘛的,我要把数据提交到modify。jsp那去呢。。
      

  9.   

    http://topic.csdn.net/u/20091112/09/342769c1-0abf-4f92-8699-7ac7d462e0cf.html