弹出窗口在关闭时将数据返回到父级

Joe*_*ery 26 javascript jquery popup

我有一个弹出窗口打开使用window.open().我现在想要的是用户能够在这个新窗口中单击2个链接之一:"允许"或"不允许".

当用户单击其中一个链接时,"弹出"窗口应该关闭,并向父窗口返回"允许"或"不允许"或沿着这些行true/ false将要执行的操作.

可能吗?如果是这样,怎么样?

码:

var authWindow = window.open('auth.php', 'authWindow', 'options...');
Run Code Online (Sandbox Code Playgroud)

然后里面只有2个锚点auth.php

Sha*_*ard 61

在调用(父)窗口中添加这样的JS代码:

function HandlePopupResult(result) {
    alert("result of popup is: " + result);
}
Run Code Online (Sandbox Code Playgroud)

在子窗口代码中添加:

function CloseMySelf(sender) {
    try {
        window.opener.HandlePopupResult(sender.getAttribute("result"));
    }
    catch (err) {}
    window.close();
    return false;
}
Run Code Online (Sandbox Code Playgroud)

并有这样的链接关闭弹出窗口:

<a href="#" result="allow" onclick="return CloseMySelf(this);">Allow</a>
<a href="#" result="disallow" onclick="return CloseMySelf(this);">Don't Allow</a>
Run Code Online (Sandbox Code Playgroud)

  • @SteveK在逻辑和代码之间有更好的分离,因为"允许"和"不允许"是元素本身的一部分,至少我认为是这样.还提供了更好的灵活性,例如,如果我们希望将来使用更多参数,只需从元素本身读取它们. (2认同)