web-dev-qa-db-fra.com

Fenêtre contextuelle pour renvoyer les données au parent à la fermeture

J'ai une fenêtre contextuelle ouverte en utilisant window.open(). Ce que je veux maintenant, c'est qu'un utilisateur puisse cliquer sur l'un des 2 liens dans cette nouvelle fenêtre: "Autoriser" ou "Ne pas autoriser".

Lorsqu'un utilisateur clique sur l'un de ces liens, la fenêtre "popup" doit se fermer et renvoyer "autoriser" ou "interdire" ou quelque chose dans ce sens, true/false ferait l'affaire , à la fenêtre parent.

C'est possible? Si c'est le cas, comment?

Code:

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

Ensuite, seulement 2 ancres à l'intérieur auth.php?

25
Joey Emery

Dans la fenêtre appelante (parent), ajoutez un tel code JS:

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

Dans le code de la fenêtre enfant, ajoutez ceci:

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

Et avoir de tels liens pour fermer la fenêtre contextuelle:

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

vous pouvez utiliser window.opener pour ça.

4
Chamika Sandamal