ssh中子窗口关闭之后刷新父窗口的问题

来源:互联网 发布:如何优化页面响应速度 编辑:程序博客网 时间:2024/04/29 03:09

在最近的一个ssh项目中,由于需要对用户资料进行编辑工作,于是想到利用一个a标签弹出子窗口,然后在子窗口保存操作完成之后刷新原来的父窗口,当我后台代码全部都写完之后,点击保存,子窗口关闭,父窗口也进行了刷新,可是没有把后台的数据带到前台,此等诡异事件足足困扰了我两天。最后我发现是js代码有问题,js代码如下图

图中的action跳转到另外一个页面,
这里写图片描述

因此,原因很显然,当我在子窗口中执行数据更新的操作时,action还没有提交子窗口就已经关闭了,所以才导致父级页面无法获取数据。

于是,我想了一个解决方案,设置一个标记:

 public String update(){       System.out.println("update.........");       System.out.print(model.getId());       companyService.update(model);       model=companyService.querybyCid(model.getId());       System.out.println("修改后所在城市"+model.getCity());//     session.put("company", model);       session.put("company", model);       request2.setAttribute("Flag", "12345");       return "update";   }在action中设置一个flag。在action跳转的那个页面中接收这个值,判断获取的值是否为空若不为空,则关闭当前页面。
另外,我在刷新父窗口的时候调用了一个函数,它在openWindow的时候就已经做了判断,代码如下:

function openWindow(sHref,strWidth,strHeight) {
var strLeft=(screen.availWidth-strWidth)/2;
var strTop=(screen.availHeight-strHeight)/2;
var strRef=”“;
strRef=strRef+”width=”+strWidth+”px,height=”+strHeight+”px,”;
strRef=strRef+”left=”+strLeft+”px,top=”+strTop+”px,”;
strRef=strRef+”resizable=yes,scrollbars=yes,status=yes,toolbar=no,systemmenu=no,location=no,borderSize=thin”;//channelmode,fullscreen
var openerobj= window.open(sHref,’newwin’,strRef,false);
openerobj.focus();
var loop = setInterval(function() {
if(openerobj.closed) {
clearInterval(loop);
//alert(‘closed’);
parent.location.reload();
}
}, 1);
}

至此,功能实现!

0 0
原创粉丝点击