30
votes

I've got a popup window opened using window.open(). What I want now is for a user to be able to click one of 2 links within this new window: "Allow" or "Don't Allow".

When a user clicks one of those links the 'popup' window should close, and return either "allow" or "don't allow" or something along those lines, true/false would do, to the parent window.

Is it possible? If so, how?

Code:

var authWindow = window.open('auth.php', 'authWindow', 'options...');

Then just 2 anchors inside auth.php?

2
did you tried something on your own so far ? You could use modal popupsmas-designs
Code posted? Although I don't really see the need, haha.Joey Emery
What are you going to be doing with these values afterwards?Anthony Grist
personally i try to avoid window popups. Normally I use jquery-ui dialogs (or flowtools overlay, or wijmo dialogs) to simulate pop-up behavior. IMO it looks nicer, is cleaner and avoids problems with browsers blocking popups - just a small remark :)giorgio

2 Answers

65
votes

In the calling (parent) window add such JS code:

function HandlePopupResult(result) {
    alert("result of popup is: " + result);
}

In the child window code add this:

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

And have such links to close the popup:

<a href="#" result="allow" onclick="return CloseMySelf(this);">Allow</a>
<a href="#" result="disallow" onclick="return CloseMySelf(this);">Don't Allow</a>
4
votes

you can use window.opener for this.