Ich habe die Idee, Elemente in Popup-Fenstern zu lösen. Erstellen Sie ein Popup mit window.open()
, richten Sie einige Elemente in diesem Dokument ein und fügen Sie Ereignis-Listener hinzu, die den ursprünglichen Zweck erfüllen, aber als Popup-Fenster-Komponente. All dies funktioniert, und es scheint, dass das erstellte Fenster von demselben Thread behandelt wird.
Ist diese "Technik" zufällig anfällig? Beispiel: Wenn ich im Popupfenster eine Arbeitsfläche erstelle und daraus einen WebGL-Kontext erhalte, wird es dann einwandfrei funktionieren? Wenn ich eine Reihe von Ereignis-Listenern einrichten werde, bekomme ich dann ohne Verzögerung Rückrufe von ihnen?
Ich konnte meine Forschung zu diesem Thema nicht machen, weil fast niemand das tut. Durch mein Leben habe ich viele Seiten Popup-Fenster für Benutzereingaben gesehen, aber nicht für interaktive oder Echtzeit-Sachen. Ich erstelle eine Web-App, die so komplex ist, dass die Verwendung mehrerer Monitore von der Benutzerfreundlichkeit profitieren würde. Weißt du, zumindest weiß ich, wie schmerzhaft es ist, zwei Monitore zu haben und nicht beide zu benutzen, weil alle Komponenten der App in einem einzigen Fenster verkrampft sind. Stellen Sie sich vor, Sie verwenden eine MDI-Version von Photoshop, in der sich die gesamte Toolbox im MDI-Bereich befindet und Sie sie nicht aus dem App-Fenster herausholen können. Eine Webseite ist genau das.
Obwohl dies nicht konventionell ist, scheint es definitiv der von Ihnen erwähnten Anforderung zu entsprechen. Ich sehe keine Probleme, wenn es um die Browser-Unterstützung für den Umgang mit Wiedergabe oder Kommunikation zwischen den Fenstern geht. Es ist nur so, dass Sie mit Ihrem Code vorsichtiger sein müssen. So etwas wie häufige Kontrollen für den Fall, dass der Benutzer eines Ihrer Pop-ups geschlossen hat (oder einen Rückruf beim Schließen des Fensters registrieren, damit Sie die notwendigen Anpassungen vornehmen können).
Vielfältige Ereignisse über die Fenster hinweg sollten auch in Ordnung sein. Siehe Ссылка , das genau das gleiche Beispiel für das Anfügen des Ereignisrückrufs von einem Fenster zu einem anderen hat.
Eine weitere gute Lektüre ist Ссылка
Ein möglicher Nachteil könnte sein, dass das Popup durch den Popup-Blocker des Browsers blockiert werden kann (aber Sie könnten den Benutzer darüber informieren, das Popup nicht zu blockieren, das von Ihrer Webanwendung kommt)
Ein anderer könnte sein, dass die Dimensionen des Popups, die Sie in Ihrem JavaScript-Code angeben, nicht eingehalten werden können (dies liegt im Ermessen des Browsers), so könnte beispielsweise ein Browser das Popup jederzeit in einem neuen Tab öffnen oder ein neues maximiertes Fenster.
Hier finden Sie einige fertige Experimente mit mehreren Fenstern: Ссылка
Für die gemeinsame Nutzung von Daten zwischen Ihrem Hauptfenster und Ihrem Popup sollten Sie keine Probleme haben.
Beachten Sie, dass nicht jeder Browser dasselbe Threading-Modell verwendet. Daher müssen Sie auch einige Leistungstests für alle Browser durchführen, die Sie unterstützen möchten, und die Unterschiede sehen.
Tags und Links javascript popup web