2016-08-12 26 views
5

Mam stronę nadrzędną, w której dodałem funkcję wyszukiwania.Odśwież stronę nadrzędną na zamknięciu wyskakującego okna

jak poniżej

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

     } 
} 

i działa idealnie. Otwiera wyskakującą stronę okna do wyszukania.

Ale teraz, czego chcę, JEŚLI zamknę okienko pop-up, chcę odświeżyć stronę nadrzędną.

Próbowałem z poniższym kodem na stronie Dziecko, ale nie odświeżono strony nadrzędnej.

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

Jak mogę to zrobić za pomocą Javascript?

Odpowiedz

7

Metoda 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> 

Tworzy okienko z linkiem do zamknięcia okna i odświeżyć rodzica.

Demo: https://jsfiddle.net/eke4f72r/

Metoda 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> 

Wykrywa z okna nadrzędnego, jeśli dziecko jest zamknięta. Jeśli ma wartość true, odświeża stronę.

Demo: https://jsfiddle.net/gv6nmdn9/

EDIT Przy zastosowaniu metody 1, uczynić rodzica, aby otworzyć okienko chcesz i tylko dodać to w swoim dzieckiem:

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

@stack należy dodać go wewnątrz' FrmInwardHdrAdvanceSearch.aspx'. Drugie skrzypce działa po mojej stronie. Może używasz starej przeglądarki? –

+0

@stack Powinieneś dodać '' wewnątrz 'FrmInwardHdrAdvanceSearch.aspx' –

+0

Coś jak' close me ' –

0

wykryć w strony nadrzędnej:

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

kiedy załadować stronę nadrzędną dla po raz pierwszy pojawia się błąd jako 'Błąd środowiska wykonawczego Microsoft JScript: Obiekt oczekiwany' – BNN

Powiązane problemy