2010-11-23 10 views
1

J'utilise javascript méthode window.open pour ouvrir permet de dire que http://www.google.com [est toujours va être une URL externe]javascript alerte à la page parent lorsque popup enfant ferme

Je stocké la référence de l'objet de la fenêtre dans un variable, le problème est que la variable ne devient jamais nulle sur la page parente et je ne suis pas capable d'alerter l'utilisateur que la fenêtre a été fermée.

est ici le code

 
    
     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); 
     } 

    

Je ne peux pas tout le code javascript sur la fenêtre pop up/de l'enfant.

quelqu'un L'espoir peut me aider à ce

Répondre

4

La variable fenêtre ne soit pas nulled quand il est fermé, mais son .closed property est true, donc il suffit de changer votre chèque à être pour cette propriété, comme ceci:

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); 
} 

Notez également le changement setTimeout(), passer une fonction dans la mesure du possible (presque toujours ) plutôt qu'une chaîne, vous aurez beaucoup moins de problèmes avec détermination de la portée.

1
//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()" 

espère que cela vous donne une certaine direction ..

+0

Je ne peux pas mettre un code dans la fenêtre de l'enfant – Sandhurst

+0

Mais cela m'a aidé dans la lutte contre un autre problème. Merci Monsieur! – Alex

Questions connexes