从我的主应用页面,Default.aspx我弹出另一个页面window.open
。
在该页面上,我有一个HyperLink
的主页链接,可以调用Javascript
函数。
<asp:HyperLink id="lnkHome" runat="server" meta:resourcekey="lnkHome" NavigateUrl = " " onclick = "javascript:performRedirect()">
我正在检查父窗口是否仍在运行,是否只关闭此窗口,如果没有,则重定向回主窗口。
function performRedirect() {
if (parentExists()) {
$("a[id$= lnkHome]").attr('href', 'window.close();');
}
else {
$("a[id$= lnkHome]").attr('href', 'Default.aspx');
}
}
function parentExists() {
return (window.parent.location === window.location) ? false : true;
}
它有效,但由于某种原因,检查失败,即使呼叫页面仍处于打开状态,它也会将我重定向到Default.aspx
。我需要在这里更改什么?不幸的是,我必须使用HyperLink
控件。我正在使用ASP.NET 4.0
答案 0 :(得分:0)
我会检查window.opener
而非window.parent
,因为您使用window.open
打开窗口
你的parentExistis
func成为了这个:
function parentExists() {
return window.opener!==null;
}
或者...
function parentExists() {
return window.opener!==null && window.opener.location.href===window.location.href;
}