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.
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:
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:
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.
Tags und Links javascript jquery popupwindow