有谁知道如何在Javascript中关闭所有弹出窗口(javascript窗口弹出窗口)?
示例:
答案 0 :(得分: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();
}
}
}
Google上的第二个结果。将所有Windows存储在数组后关闭所有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();
}
}
}
}
答案 1 :(得分:1)
通过存储句柄来跟踪打开的窗口,然后在按钮的点击处理程序的窗口句柄上使用close()方法。
就个人而言,我发现弹出窗口在Web界面中使用时会非常烦人。如果您可以通过使用基于DOM的对话框来避免它们,请执行此操作。 jQuery dialog插件非常方便。