2017-05-03 12 views
1

Grundsätzlich habe ich eine Seite, in der ich eine javascript Datei enthalten. in der js-datei habe ich 2 funktionen genannt funktion a() und funktion b(). Innerhalb der Funktion "A" habe ich das zu ladende Popup aufgerufen. Nachdem das Kind-Popup geladen wurde, habe ich eine Funktion namens interactive, die einen ajax Aufruf ausführt. Wenn das Ergebnis wahr ist, muss ich die untergeordnete Seite schließen und dann die Funktion "B" auf der Hauptseite aufrufen. Nachfolgend ist der Beispielcode aufgeführt. Das Problem ist, ich bin nicht in der Lage, die Funktion "B" in der Child-Seite verweisen und einen Aufruf auf der Hauptseite.aktualisieren Hauptseite nach dem Schließen Kind Seite

function a() { 
    var strWindowFeatures = "location=yes,scrollbars=yes,status=yes"; 
    var URL = path of the url 
    var win = window.open(URL, "_blank", strWindowFeatures); 
} 

function b() { 
    calling a 
    function to relaod the page. // 
} 


function InterActive(encodeText) { 

    url: url 
    cache: false, 
    async: false, 
    type: 'GET', 
    contentType: 'application/json; charset=utf-8', 
    data: {}, 
    dataType: 'json', 
    success: function (data) { 
     if (data === true) { 
      alert('record updated'); 
      window.close(); 
      // i need to call the function b() in the child page.. 

     } 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     alert(jqXHR); 
     alert(textStatus); 
     alert(errorThrown); 
    } 
}); 
+0

Sie öffnen also ein neues Fenster? –

+0

ja. Im Child-Fenster vor dem Schließen des Popup-Fensters muss ich die Funktion im Hauptfenster aufrufen –

+0

einen 'onbeforeunload' Eventhandler für das untergeordnete Fenster hinzufügen, das die Reload-Funktion aufruft – Icepickle

Antwort

0

Sie können es so machen, dass das Fenster öffnen Sie ein onbeforeunload Ereignis empfängt, die Ihre Nachlegefunktion im Fenster Mutter aufruft.

wäre ein Beispiel die folgenden

function reloader() { 
    if (!reloader.id) { 
    reloader.id = 0; 
    } 
    document.querySelector('#reloadCount').innerHTML = ++reloader.id; 
} 

function openWindow() { 
    var win = window.open('about:blank', 'blank', 'width=640,height=480'); 
    win.document.write('<html><head><body><h1>Reloads on close</h1></body></html>'); 
    win.addEventListener('beforeunload', function() { 
    reloader(); 
    return true; 
    }); 
} 

sein, die Sie auf jsfiddle here

+0

nein. Hauptfenster Funktion wird nicht aufgerufen –

+0

addEventListener ist Fehler in IE –

+0

@jaiganesh Könnten Sie genauer auf die IE-Version sein, für mich in Chrome, Firefox und Internet Explorer das Beispiel funktioniert (wo IE zeigt mir einen Bestätigungsdialog, aber es aktualisiert den neu geladenen Teil) – Icepickle

-1

Ich glaube, Sie Funktion b() in Kind (window.open in dem stacksnippets ist nicht erlaubt) testen müssen hinzufügen Seite so ist es leicht zugänglich, also bitte überprüfen Sie mit diesem.

+0

Wie hilft das dem OP? – Icepickle

Verwandte Themen