gpt4 book ai didi

javascript - 如何在Javascript中通过名称获取窗口对象?

转载 作者:行者123 更新时间:2023-12-01 05:45:46 31 4
gpt4 key购买 nike

我的查询是,注销后关闭所有子窗口(如果打开)。我正在从不同的 jsp 创建子窗口,并且我想从 Search.jsp 关闭它。Search.jsp 有创建、注销等按钮。

我的 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>&nbsp;&nbsp;Name</td>
<td><input type="text" name="name" value="*" required /></td>
<td>&nbsp;&nbsp;Description</td>
<td><input type="text" name="description" value="*" required /></td>
<td></td><td></td>
<td><input type="submit" value="Search" /></td>

<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>

在这里,如果我单击注销按钮,则它必须关闭所有打开的子窗口。我从不同的 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> &nbsp;&nbsp;</h5>

同样。据我所知,如果我从同一个 jsp ie 创建子窗口,我可以实现这一点。仅搜索.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)?

任何建议或任何其他方式来实现这一目标,都会对我非常有帮助。

提前致谢。

最佳答案

由于 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");
}

关于javascript - 如何在Javascript中通过名称获取窗口对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26974612/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com