Ruft die Referenz des untergeordneten Fensters nach der Aktualisierung ab

8

Ich habe eine HTML5 Offline-App (d. h. es gibt keine serverseitige Komponente / Code).

Es hat im Grunde zwei Fenster (Eltern und Kind). In einigen Fällen muss das übergeordnete Fenster jedoch programmgesteuert aktualisiert werden. Wenn dies geschieht, verliert es seinen Verweis auf das Kind und der Verweis des Kindes auf window.opener ist nicht mehr gültig. Also dachte ich, dass ich das Child-Fenster serialisieren und in localStorage speichern würde. Wenn dann das Elternelement aktualisiert wurde, konnte es die Fensterreferenz von localStorage übernehmen und weiterhin mit dem Kind interagieren.

Das Problem ist, dass dies nicht funktioniert (gemäß meiner vorherigen Frage hier DOMWindow-Objekt ) ). Ich kann ein DOM-Fenster nicht wie jedes andere Objekt serialisieren.

Wie kann ich also in meinem neu aktualisierten Fenster einen Verweis auf das Kind des Vorgängers erhalten?

Bearbeiten : Betonen Sie, dass es sich um eine Offline-App handelt. Es gibt keine serverseitige Komponente.

Ich sollte auch hinzufügen, dass der Grund, warum ich den Eltern aktualisieren muss, ist, nach Anwendungsaktualisierungen zu suchen (Änderungen im Cache-Manifest). Da der Elternteil die erste Seite in der Anwendung ist, die geladen wird, verwaltet er im Grunde das Caching (in der Tat, in Safari, wenn dieses Fenster während eines Caching-Prozesses geschlossen wird, stürzt der gesamte Browser ab). Also "Eltern" ist im Wesentlichen "erste Seite, die der Benutzer lädt". Dies bedeutet, dass ich das "Elternteil" in einem Frame nicht haben kann, da das oberste Fenster dann das Caching verwalten würde und die Aktualisierung erfordern würde, um nach Updates zu suchen. Tatsächlich scheint es, dass ich kann die frame-Methode verwenden, da das Aktualisieren der Seiten in der Anwendung die Aktualisierungsprüfung auslöst. Umständlich aber.

    
ggutenberg 02.11.2010, 17:31
quelle

4 Antworten

1

Siehe hier: Ссылка

%Vor%

( updateready wird jedes Mal ausgelöst, wenn eine neue Version heruntergeladen wurde)

    
thejh 02.11.2010, 18:51
quelle
12

Sie können die Referenz des untergeordneten Fensters erhalten, indem Sie einfach dem Trick folgen.

%Vor%

Beachten Sie, dass Sie einen festen untergeordneten Fensternamen haben müssen, damit dieser Trick funktioniert.

Beispiel URL: Ссылка

    
josephj 27.06.2011 10:44
quelle
0

Klingt nach einer ziemlich komplexen Lösung. Warum legen Sie den Inhalt des übergeordneten Fensters nicht in einen unsichtbaren Iframe (d. H. Einen Rahmen ohne Rahmen) und aktualisieren Sie den Rahmen einfach?

Damit können Sie den Verweis auf das Rahmen- und untergeordnete Fenster im obersten Dokument speichern, in dem beide darauf zugreifen können.

    
Aaron Digulla 02.11.2010 17:34
quelle
0

Können Sie etwas auf Ihrem Opener aufrufen, der es anweist, das Popup auf eine Seite neu zu laden und erneut zu öffnen?

z.B.

%Vor%

Wenn Sie in Ihrem serverseitigen Code das Popup-Set festgelegt haben, fügen Sie den Code hinzu, um es erneut zu starten.

    
scunliffe 02.11.2010 17:36
quelle

Tags und Links