我的查询是,在注销后关闭所有子窗口(如果打开)。 我正在从不同的jsps&创建子窗口我想从Search.jsp关闭它。 Search.jsp有像Create,Logout这样的按钮。
我的Search.jsp是 -
<%
String sessionstart = (String)session.getAttribute("sessionstart");
if(sessionstart != null)
{
%>
<body>
<div align="center" > <img src="images/Headerimage.png" alt=""> </img></div>
<div id = "leftmargin" >
<form action="Search" method="post">
<table cellspacing="10" cellpadding="10">
<tr >
<td >Type</td>
<td><input type="text" name="type" value="*" required /></td>
<td> Name</td>
<td><input type="text" name="name" value="*" required /></td>
<td> Description</td>
<td><input type="text" name="description" value="*" required /></td>
<td></td><td></td>
<td><input type="submit" value="Search" /></td>
<td>
</td>
<td><h5> <input type="button" value="Create" onclick="Create();" /></h5> </td>
<td> <h5> <input type="button" value="Logout" onclick="Logout(); " /> </h5> </td>
</tr>
</table>
</form>
</div>
<%
if (sessionset != null) {
%>
<div align="center" style="margin-top: 15%">
<img src="images/DocumentManagementSplash.png" alt=""> </img>
</div>
<%
}
%>
</body>
<%
}
else
{
%>
<script>
window.location.replace("ietmLoginDialog.jsp");
</script>
<%
}
%>
<script type="text/javascript">
function Create() {
window.open("ltIEnterCreatePartFileUpload.jsp?", "CreatePart",
"height=140,width=350");
}
function Logout() {
var w = document.getElementsByName("mywin");
alert("w closed :: "+ w.closed);
alert("w name :: "+ w.name);
alert("w open:: "+ w.open);
if(w.name == "mywin"){
w.close();
}
window.open("ietmLoginDialog.jsp", '_self', "location=yes");
}
</script>
在这里,如果我点击退出按钮,那么它必须关闭所有OPEN子窗口。 我用不同的jsp创建的孩子们的窗户。 例如,从Search.jsp,我打开属性页,即。,
<td style="width: 170px;" ><a
href="ltSearchDocProperties.jsp?idvalue=<%=strObjectId%>"
onclick="window.open(this.href, 'mywin',
'left=20,top=20,width=900,height=725'); return false;"><%=strName%></a></td>
从Property.jsp,我打开编辑jsp即。,
<h5 align="right">
<a href="ltSearchDocEdit.jsp?idvalue=<%=strObjectId%>" onclick="window.open(this.href, 'mywiirn','width=900,height=615,resizable=false'); return false;">Edit</a> </h5>
&安培;同样。 据我所知,如果我从同一个jsp创建子窗口,我可以实现这一点。仅限Search.jsp。
我的阅读材料是 -
How to close all the child pages on LogOut
How to Close multiple child windows from a parent window
同样,这仅描述窗口引用是否仅在jsp中。 所以请建议我,如何关闭所有儿童窗户,从不同的jsp创建 来自另一个jsp(Search.jsp)?
任何建议或任何其他方式来实现这一点,对我都非常有帮助。
提前致谢。
答案 0 :(得分:0)
由于window.open()
返回对创建窗口的引用,您可以将它们存储在变量中,并在注销时关闭它们:
var windowsToCloseOnLogout = [];
function create() {
windowsToCloseOnLogout.push(window.open("ltIEnterCreatePartFileUpload.jsp?", "CreatePart", "height=140,width=350"));
}
function logout() {
for (var i = 0, windowNb = windowsToCloseOnLogout.length; i < windowNb ; i++) {
windowsToCloseOnLogout[i].close();
}
window.open("ietmLoginDialog.jsp", '_self', "location=yes");
}