avviso javascript pagina padre quando si chiude bambino popup
-
27-09-2019 - |
Domanda
Sto usando JavaScript window.open metodo per aprire diciamo http://www.google.com [ la sua intenzione di essere sempre un po 'URL esterno]
Ho memorizzato il riferimento dell'oggetto window in una variabile, il problema è che non ottiene mai nulla variabile sulla pagina padre e io non sono in grado di avvisare l'utente che il pop-up è stato chiuso.
Ecco il codice
var winFB; var winTWt; var counterFB = 0; var counterTWT = 0; var timerFB; function openFB() { if (counterFB == 0) { winFB = window.open("http://www.google.com"); counterFB = 1; } if (counterFB > 0) { alert(winFB); if (winFB == null) { counterFB = 0; clearTimeout(timerFB); alert("Window Closed"); } } timerFB= setTimeout("openFB()", 1000); }
Non riesco a mettere qualsiasi codice JavaScript nella finestra pop-up / bambino.
La speranza che qualcuno mi può aiutare su questo
Soluzione
La variabile finestra non ottiene reso nullo quando è chiuso, tuttavia la sua .closed
proprietà è true
, quindi basta cambiare il vostro assegno di essere per la proprietà, in questo modo:
var winFB;
var winTWt;
var counterFB = 0;
var counterTWT = 0;
var timerFB;
function openFB() {
if (counterFB == 0) {
winFB = window.open("http://www.google.com");
counterFB = 1;
}
if (counterFB > 0) {
if (winFB.closed) {
counterFB = 0;
clearTimeout(timerFB);
alert("Window Closed");
}
}
timerFB = setTimeout(openFB, 1000);
}
Si noti inoltre la setTimeout()
cambiamento, passare una funzione a quando possibile (quasi sempre ), piuttosto che una stringa, avrete molto meno problemi con scoping.
Altri suggerimenti
//in the parent
winFB = window.open("http://www.google.com");
//in the child window you can access
var _parent = window.opener.document;
//also use the onunload event in the child window
onunload="doSomething()"
Spero che questo ti dà una direzione ..