如何从另一个窗口关闭窗口

时间:2016-06-27 21:21:23

标签: javascript browser

我有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

请帮忙。

2 个答案:

答案 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();
    }
}
相关问题