Rufen Sie JavaScript vom übergeordneten Fenster aus dem untergeordneten Fenster auf

8

Ich habe einen Kalender und wenn ich auf <td> klicke, erscheint ein Popup-Fenster, in dem du dein Event für das ausgewählte Datum erstellen kannst. Ich möchte ein Feature hinzufügen.

Wenn der Benutzer das Ereignis beendet hat, möchte ich eine JavaScript-Anfrage an die übergeordnete Seite senden, damit ich den Kalender mit AJAX aktualisieren kann. Grundsätzlich möchte ich eine Funktion vom Kind aufrufen, aber die Funktion ist auf der Elternseite.

Bei Google habe ich nur ein Skript gefunden, das das Elternfenster auffrischen kann - nichts über einen "Eltern-Rückruf". ☹ Ist das überhaupt möglich?

P.S. Die Antwort kann reines JS oder jQuery sein, es spielt keine Rolle. Ich werde in der Zwischenzeit weiter suchen.

    
David Bélanger 13.06.2013, 19:38
quelle

1 Antwort

13

Was Sie suchen, ist eine Referenz auf window , die das Popup-Fenster geöffnet hat. Sobald Sie das haben, können Sie Funktionen in diesem Fenster aufrufen, Variablen in diesem Fenster lesen und schreiben oder sogar sein DOM manipulieren.

Diese Referenz heißt opener . Es gibt Ihnen das Objekt window für das Fenster, das das aktuelle Fenster geöffnet hat. Wenn Sie beispielsweise eine Funktion im ursprünglichen Fenster haben:

%Vor%

Dann im Popup-Fenster könnte man es so nennen:

%Vor%

Natürlich müssen Sie sicherstellen, dass updateMe() eine globale Funktion auf der Originalseite ist. Oder wenn Sie ein Objekt auf der Originalseite haben und updateMe() eine Methode dieses Objekts ist, können Sie dies tun, solange das Objekt global ist. z.B. auf der Hostseite:

%Vor%

Dann im Popup können Sie tun:

%Vor%

Grundsätzlich können Sie, solange Sie mit window.whatever auf das Objekt oder die Funktion in der ursprünglichen Seite gelangen, das Popup einfach in opener.whatever ändern.

    
Michael Geary 13.06.2013, 21:19
quelle

Tags und Links