最近也遇到了类似的问题,我采取的办法是重写父窗口的地址,代码类似如下:
response.Write "<script>window.parent.translist.document.location='agendalistdetail.asp?sdate='+window.parent.searchagenda.sdate.value;</script>"translist可视为父窗体,不过在我的代码中是一个页面中的另一个iframe
在这里我重写了它的location,希望对楼主在参考做用。

解决方案 »

  1.   

    用别人的东西真的感觉好烦躁,就象这个opener.location.reload  ,其实它里面已经保留原查询记录,但就是会弹出个提示,可俺又不知道怎么改,而且搜遍网络每个角落都找不到opener.location.reload 内部实现,现在非常讨厌这种大家常用却不能根据需求改动的死东西了,经常作web程序的同仁,我想大家都有同感吧
      

  2.   

    最好的办法就是父窗口的表单用get方式提交,不要用POST
      

  3.   

    /****************************************小弟也采用了window.opener.location.replace(window.opener.document.referrer)来刷新可是不能保留我父窗体原先的查询记录
    有哪位仁兄深熟IE,帮帮手,试试如何刷新但不提示刷新,又能保留原查询记录,谢谢啊!!!!!*************************************/
    前面的能实现,说些思路,想必楼主不难实现:
    主要是当你打开一个窗口时,可以顺便把当前的查询条件也带过来,
    再用服务器脚本(如PHP:$_GET)去获取这些数据.(以翻页为例,比如你现在打开的是每2页的内容)
    现在要打开一个窗口修改当中的一项,提交完后重新装载每二页;
    document.forms['yourForm'].submit();
    window.opener.location.href ="index.php?&page=2";//2为打开时传过来的当前翻到的页;
    window.close();
    /***********/这样,你就可以在父页面去获得$_GET['page'],再去查询到你特定的页面;另一方面,楼主也可以设定其它全局变量来获取你的查询条件;
      

  4.   

    黑金兄弟说到的是重定向方法,而且是窗体套窗体的方式我在程序也用到过重定向方法,比如window.opener.location.replace(window.opener.document.referrer)只是窗体中没带参数而以,因为父窗体的查询在本窗体中就可以实现,也正因为这样查询记录不能保留
      

  5.   

    谢谢各位,看来大家都是建议我预先保留查询条件
    这个方法我有想过了,把所有的查询条件放在session中,然后重定向时都通过session,然后调用查询事件就可以实践只是我不想这么烦杂,我在想opener.location.reload 为什么可以保留我原先的查询记录呢
    是不是IE里有个设置,然后再用重定向,就可以了
    现在看来我有点瞎子摸象了
      

  6.   

    其实我认为最好的解决方法可能是通过 AJAX, 父窗口不用刷新,而是调用父窗口的函数,保存查询纪录的同时局部刷新另一个解决方法是采用框架,用一个隐藏框架或母框架保查询纪录,同时刷新其中一个框架的内容这两种方法都不涉及服务器端,且可以兼容各种浏览器
      

  7.   

    好像IE中没有这个设置,即使有,你也没办法去修改客户端IE的设置。只能想其他办法。
    用GET方法提交也是个解决办法。