2012-02-14 6 views
20

Ho una finestra popup aperta utilizzando window.open(). Quello che voglio ora è che un utente possa fare clic su uno dei 2 link all'interno di questa nuova finestra: "Consenti" o "Non consentire".Finestra popup per restituire dati al genitore alla chiusura

Quando un utente fa clic su uno di questi link finestra 'pop-up' dovrebbe chiudere, e tornare sia "consentire" o "non consentono" o qualcosa del genere, true/false farebbe, alla finestra padre.

È possibile? Se é cosi, come?

Codice:

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

quindi solo 2 ancore all'interno auth.php?

+0

hai provato qualcosa da solo fino ad ora? Potresti usare i popup modali –

+0

puoi pubblicare il codice? – Unknown

+0

Codice pubblicato? Anche se non vedo davvero il bisogno, haha. –

risposta

52

Nella finestra di chiamata (genitore) aggiungi tale codice JS:

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

Nel codice di finestra figlio aggiungere questo:

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

E avere tali collegamenti per chiudere il popup:

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

CloseMySelf causa un errore perché il collegamento sta andando direttamente a # e la finestra non si chiude. –

+0

@Joey scusate, ho riscontrato un errore nel mio codice .. vedere ora. (in JavaScript, 'catch' deve avere le seguenti parentesi) –

+0

Grazie per questo :) –

4

per questo è possibile utilizzare window.opener.