web-dev-qa-db-fra.com

Actualiser la page parent à la fermeture de la fenêtre contextuelle

J'ai une page parent dans laquelle j'ai ajouté une fonctionnalité de recherche. 

comme ci-dessous

function FunClick(StrPriCaption) {
        var StrPriHTML = "";
        if (StrPriCaption == 'AdvSearch') {
            //document.getElementById('TxtCondition').value = "AdvSearch";
            //form1.submit();
            var StrPriReturnValue = "";
            window.open('FrmInwardHdrAdvanceSearch.aspx', null, 'height=370,width=630,top=0,left=0,resizable=yes,scrollbars=yes');

        }
 }

Et ça marche parfaitement. Il ouvre une fenêtre pop-up pour moi de rechercher.

Mais maintenant, ce que je veux, c’est que, si je ferme la fenêtre contextuelle, je veux actualiser la page parent. 

J'ai essayé avec le code ci-dessous dans la page enfant, mais il n'a pas actualisé la page parent.

 function CloseWindow() {
    window.close();
    window.opener.location.reload();
 }

Comment puis-je faire cela en utilisant Javascript?

5
B N

Méthode 1

<script>
function popup() {
    var win = window.open("", "Page Title", "toolbar=no, location=no");
    win.document.body.innerHTML = '<a href="#" onclick="window.opener.location.reload();window.close();">Close Me</a>';
}
</script>
<a href="#" onclick="popup()">Open Me</a>

Il crée une fenêtre contextuelle avec un lien pour fermer la fenêtre et actualiser le parent.

Démo: https://jsfiddle.net/eke4f72r/

Méthode 2

<script>
function popup() {
    var win = window.open("", "Page Title", "toolbar=no, location=no");
    var win_timer = setInterval(function() {   
      if(win.closed) {
          window.location.reload();
          clearInterval(win_timer);
      } 
      }, 100); 
}
</script>
<a href="#" onclick="popup()">Open Me</a>

Il détecte à partir de la fenêtre parente si l'enfant est fermé. Si true, il recharge la page.

Démo: https://jsfiddle.net/gv6nmdn9/

EDITLorsque vous utilisez la méthode 1, demandez à votre parent d’ouvrir la fenêtre contextuelle souhaitée et de simplement l’ajouter à votre enfant:

<a href="#" onclick="window.opener.location.reload();window.close();">Close Me</a>

Détectez-le dans la page parente:

iframe=window.open("");
iframe.onclose=function(){
 window.location="redirect";
};
0
Jonas Wilms