我正面临一个复杂的情况,即父窗口正在调用showModelDialog框来提交表单。 提交表单时,它将转到struts2操作。 Action执行一些操作,然后再次重定向到父页面。 这样就可以再次刷新完整的父页面。用户点击子窗口中的提交后我想要的。子窗口应该关闭,结果只需要在父窗口的特定部分更新。
函数调用子窗口:
function createRegularFile()
{
var userAgent = navigator.userAgent;
var appName = navigator.appName;
window.name="WorklistFiles";
alert("before="+UserFiles.innerHTML);
if(appName=="Microsoft Internet Explorer")
{ window.showModalDialog("createFilePrepareFilesAction.action",window,"help:no;dialogheight:400px;dialogwidth:500px;status:0;");
}
else{var abc=window.open("createFilePrepareFilesAction.action","window","HEIGHT=400,WIDTH=500,screenX=80,left=300,screenY=50,top=200,scrollbars=1,resizable=yes");
}
子窗口中的功能:
function create()
{
//other code
document.createRegularFile.action="createFileFilesAction.action";
document.createRegularFile.submit();
window.close();
}
行动代码:
createFile()
{
//some code.
return "parent"
}
struts.xml中:
<result name="parent" type="redirect-action">
<param name="actionName">worklistWorklistAction</param>
<param name="error">${error.get(0)}</param>
</result>
Parent.jsp
Contains code which displays a table using <s:iterator>
成功提交后,只需更新此表。我知道如何使用AJAX但在这种情况下无法找到实现它的方法。
答案 0 :(得分:0)
关闭孩子的大纲
<input type="button" onclick="ajax_call();" />
function to_close_child()
{
// code to close child window
}
function ajax_call()
{
//ajaxfunction
success
{
// no need to call on success func
}
// call the close function here only
to_close_child();
}