JS 在open打开的子窗口页面中调用父窗口页面的JS方法

时间:2022-01-13 06:44:25

需求的情景如下:

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方法

http://jxdwuao.iteye.com/blog/793234