有什么办法可以知道父 window 在 Django 视图中是否关闭?
Is there any way to know whether the parent window is closed or not in django view?
我有一个 Django 视图,它应该 return HttpResponse
取决于创建当前 window 的父 window 的状态。如果父 window 仍然打开,那么我想关闭当前 window 并将父 window 重定向到某些 url,否则如果父 window已关闭,那么我想将新的 window 重定向到那个 url。有什么方法可以在我的 Django 视图中确定这一点吗?
我在 Javascript
中试过了
if (!window.opener.parent.closed){
window.close();
window.opener.parent.location.href="<url>";
}
else{
window.location.href="<url>";
}
但是即使父 window 关闭,else
块也不会执行,如果父窗口打开,if
块可以正常工作。
如果您正在处理弹出新 window 的 window,您应该检查 window.opener
。
我会尝试以下代码:
if(window.opener != null && !window.opener.closed) {
window.opener.location.href="<url>"
window.close()
}
您可以将 else 置于超时状态,因为父级 window 可以在子级不知情的情况下随时关闭。
var intervalID;
function checkParent() {
if (window.opener && window.opener.closed) {
window.clearInterval(intervalID);
window.opener.location.href="<url>"
}
}
var intervalID = window.setInterval(checkParent, 500);
我有一个 Django 视图,它应该 return HttpResponse
取决于创建当前 window 的父 window 的状态。如果父 window 仍然打开,那么我想关闭当前 window 并将父 window 重定向到某些 url,否则如果父 window已关闭,那么我想将新的 window 重定向到那个 url。有什么方法可以在我的 Django 视图中确定这一点吗?
我在 Javascript
中试过了if (!window.opener.parent.closed){
window.close();
window.opener.parent.location.href="<url>";
}
else{
window.location.href="<url>";
}
但是即使父 window 关闭,else
块也不会执行,如果父窗口打开,if
块可以正常工作。
如果您正在处理弹出新 window 的 window,您应该检查 window.opener
。
我会尝试以下代码:
if(window.opener != null && !window.opener.closed) {
window.opener.location.href="<url>"
window.close()
}
您可以将 else 置于超时状态,因为父级 window 可以在子级不知情的情况下随时关闭。
var intervalID;
function checkParent() {
if (window.opener && window.opener.closed) {
window.clearInterval(intervalID);
window.opener.location.href="<url>"
}
}
var intervalID = window.setInterval(checkParent, 500);