我有2个窗口,winA和winB。从窗口我们可以打开另一个窗口winC。现在winA有注销链接。如果我们点击退出,它将注销winA,winB并关闭winC。 问题是从WinB打开WinC,而logOut没有关闭WinC。 这是注销代码,它位于winA中。
function logout(logoutUrl){
var winC = window.open('','WinC ');
if(!winC .closed){
var logoutWin = window.open(logoutUrl,'Winc','toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,left=350, top=100, width=550, height=400', '');
setTimeout(function() {
logoutWin.close();
}, 1000);
}
winC.close();
}
问题是即使winC未打开它调用logoutUrl并尝试关闭winC
请帮忙。
答案 0 :(得分:0)
来到窗户时,你可以给它们命名:
target='_blank'
创建一个新的未命名窗口
target='Ralph'
创建一个新的命名窗口,可以通过javascript访问Ralph,Ralph(mywindow,detail,example等)。
对于大多数人来说,窗口可以关闭<a href='#' onclick='Javascript:Ralph.close();' > Close popup </a>
这不是必需的或有效的,因为他们的弹出窗口拦截器不允许javascript打开新窗口
答案 1 :(得分:0)
您忘记了else
(不确定代码的其余部分或您要执行的操作,但只有在未关闭时才会关闭winC):
function logout(logoutUrl){
var winC = window.open('','WinC ');
if(!winC.closed){
var logoutWin = window.open(logoutUrl,'Winc','toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,left=350, top=100, width=550, height=400', '');
setTimeout(function() {
logoutWin.close();
}, 1000);
} else {
winC.close();
}
}