javascript - 一键打开多个javascript弹出框

标签 javascript

这是一个 JavaScript 问题。

我需要创建一个按钮,单击一次该按钮将打开 5 个子窗口(弹出框)。

屏幕左上角有一个方框,右上角有一个,左下角有一个,右下角有一个,中央有一个。每个框都有不同的 URL。

当主窗口关闭时,所有的子窗口也应该关闭。

我只能编写打开一个弹出窗口的代码 - 无法弄清楚如何编写所有 5 个代码以通过单击一次按钮同时打开然后在父窗口关闭时将它们全部关闭。

这是我目前所拥有的:

<SCRIPT language="JavaScript">
function myPopup(URL) {
popupWindow = window.open(URL,'popUpWindow','height=500,width=500,left=100,top=100,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no, status=yes');
}
</SCRIPT>

<a href="#" onclick="myPopup(this.href);return false">Open Pop-Up</a>

非常感谢任何能帮助我的人。


感谢所有帮助过我的人。通过利用这里的反馈,我整天都在处理这个项目,并提出了一些有效的代码。我不确定如何将每个弹出窗口的 url 分配给数组 - 但至少它们有效。

但是,我无法在父窗口关闭时关闭所有弹出窗口。希望你能帮忙。这是新代码:

<script type="text/javascript">

/*Use Array - Open 5 new popup windows using onclick*/

function newWindow() {
 var winPop = new Array();
  winPop[winPop.length] = window.open('top_right.html','window1','scrollbars=no,width=235,height=155,left=1000,top=200,screenX=1000,screenY=200');
window.open('top_left.html','window2','scrollbars=no,width=235,height=155,left=325,top=200,screenX=325,screenY=200');
window.open('bottom_left.html','window3','scrollbars=no,width=235,height=155,left=325,top=600,screenX=325,screenY=600');
window.open('bottom_right.html','window4','scrollbars=no,width=235,height=155,left=1000,top=600,screenX=1000,screenY=600');
window.open('center_page.html','window5','scrollbars=no,width=235,height=155,left=660,top=450,screenX=660,screenY=450');
}

/*NOT WORKING FOR ME --Close all popups when parent window is closed*/

onbeforeunload = function() {
    for (var index = 0; index < winPop.length; ++index)
        winPop[index].close();
}
</script>
</head>

<body>
<div id="wrap"> <a href='' onclick='newWindow()'><img src='images/group_clicker.gif' border='0'></a> </div>
</body>

最佳答案

DEMO

将所有打开的窗口保存到一个数组中。
注册beforeUnload事件,当它触发时,循环遍历 close() 弹出窗口。

注意:我认为是 jsFiddle 或 Chrome,但每次点击不会打开超过 1 个弹出窗口。

并且由于对弹出窗口打开的限制,您无法可靠地控制打开的弹出窗口的位置。打开像 YUI 这样的窗口内弹出窗口可能对您有用。的 paneljQuery(UI)dialogue

function openPopup(howMany) {
    var popups = [];

    var temp;
    for (var index = 0; index < howMany; ++index) {
        popups.push(open('', '', 'height=500,width=500'));
        popups[index].document.write('popup ' + (index + 1) + ' of ' + howMany + '<br/>this will close on parent window close');
    }

    closeFunc = function() {
        for (var index = 0; index < popups.length; ++index)
            popups[index].close();
    };

    if (addEventListener)
        addEventListener('beforeunload', closeFunc, false);
    else
        attachEvent('onbeforeunload', closeFunc);
}

关于javascript - 一键打开多个javascript弹出框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17893983/

相关文章:

javascript - 在 iframe 中创建 DOM 元素

javascript - JQuery 验证按钮切换上的输入

javascript - 等待 Angular JS 工厂请求获得响应

javascript - parseInt % 和 px 问题

javascript - 在 js 中添加 Country FormHelper Bootstrap 不起作用

javascript - 一个html部分中的js代码不起作用

javascript - 在 Mongo 中查找包含 ISODate 字段的文档

javascript - 发送数组到post ajax

javascript - 变量到另一个变量得到 “undefined”

JavaScript 对象 : Why Doesn't This Work?