需求的情景如下:
1:做新增或修改等操作的时候打开一个新的浏览器窗口(使用window.open(参数等)方法)
2:在新增或修改等的页面上有返回按钮、重置按钮、保存按钮,对于返回就直接关闭此窗口(使用window.close()方法)重置就不说啦!对于保存的操作要保存好对应的信息,调用父窗口页面的方法,关闭子窗口页面
我们采用的方法的关键点如下句代码(写在ACTION类中的对应的方法中,通常放在最后边):
renderHtml(getResponse(), "<script language=JavaScript>"+"window.opener.searchMethod();window.close();"+"</script>");
注:searchMethod()是父窗口页面的方法,renderHtml()/getResponse()方法如下面所示
/**
* 直接输出纯HTML
*/
public void renderHtml(HttpServletResponse response, String text) {
PrintWriter out = null;
try {
out = response.getWriter();
response.setContentType("text/html;charset=UTF-8");
out.print(text);
} catch (IOException e) {
} finally {
if (out != null) {
out.flush();
out.close();
out = null;
}
}
}
/**
* 获取response
*
* @return
*/
public HttpServletResponse getResponse() {
return ServletActionContext.getResponse();
}
参考如下:
1:JS刷新父窗口的几种方法
http://www.cnblogs.com/top5/archive/2010/10/18/1854666.html
2:JS 在open打开的窗口中调用父页面JS方法