使用Javascript关闭所有弹出窗口

Jin*_*ong 2 javascript

有谁知道如何在Javascript中关闭所有弹出窗口(javascript窗口弹出窗口)?

例:

  1. 通过单击按钮打开3个新窗口,并使用window.open()打开所有3个新窗口.
  2. 单击按钮并关闭所有3个弹出窗口以收集.

Tyl*_*ter 8

var childWindowHandles = new Array();

function openNewWindow(url, params) {
    childWindowHandles[childWindowHandles.length] = window.open(url, '', params);
}    

function closeChildWindows() {
    for (var loop=0; loop<childWindowHandles.length; loop++) 
    {
        if (!childWindowHandles[loop].closed)
        {
            childWindowHandles[loop].close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

谷歌的第二个结果.将所有Windows存储在数组中后关闭它.

如果你不喜欢全局变量,这是一种更多的OOP方式.(我不是100%确定它有效,只是修改了上面的代码.

popups = new popups();
function popups()
{
    this.childs = new array();

    this.open = function(url, params)
    {
        this.child.push(window.open(url, '', params)); 
    }

    this.closeAll()
    {
        for(var loop=0; loop<this.childs.length; loop++)
        {
            if (!this.childs[loop].closed)
            {
                this.childs[loop].close();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 以免忘记"推".它更干净,更快(通常):`this.child.push(window.open(url,'',params);` (4认同)