Der Martin: Fensterübergreifend

Beitrag lesen

Moin,

ist es möglich, ein Popupfenster zu öffnen und Einträge aus diesem per Klick ins Hauptfenster in ein Formular einzusetzen oder geht sowas nur im selben Fenster?

das geht, solange Hauptdokument und Popup von derselben Domain stammen, ansonsten verhindert die SOP (Same Origin Policy, ein Sicherheitsmerkmal von Javascript) den gegenseitigen Zugriff. Das Popup hat in opener eine Referenz auf sein Elternfenster zur Verfügung (umgekehrt geht's ja sowieso).

Gibt es eventuell sogar Beispiele für meine Frage?

Anwendungsbeispiele? Klar. Stell dir ein Texteingabefeld vor, das wahlweise eine Freitexteingabe erlaubt, oder die Auswahl aus einer Liste, die in einem separaten Fenster aufpoppt. Würde man aber vielleicht lieber ohne Popup lösen, weil sonst die Gefahr besteht, dass der Popup-Blocker genau das tut, wofür er da ist ...

Ist es möglich, ein Popupfenster als "immer im Vordergrund" zu definieren?

Nein. Das Popup kann wohl mit self.focus() sich selbst den Focus wieder holen, wenn es ihn verloren hat. Das kann aber vom Hostsystem oder schon vom Browser verhindert werden (weil es in manchen Situationen sehr ärgerlich sein kann); außerdem kann es zu ungünstigen Situationen führen, etwa dass das Popup zwar den Focus hat, aber trotzdem im Hintergrund liegt. Der Eingabefocus hat nämlich nicht zwingend was mit der z-Ordnung der geöffneten Fenster zu tun.

Hintergrund der Frage: Ein Formular, das in 20% aller Fälle komplett per Hand ausgefüllt werden muss, aber in 80% kommt der Datenbestand einer DB hierfür in Frage.

Das ist ja in etwa das Anwendungsbeispiel, was ich eben auch angedacht habe.

Deshalb auch gleich die Zusatzfrage: Gibt es bessere Lösungen für mein Vorhaben? (z.b. jquery-flexbox o.ä.)?

Es gibt die Möglichkeit, dem regulären Seiteninhalt einfach ein weiteres Element zu überlagern, das aussieht wie ein Popup (Werbeeinblendungen werden inzwischen gern so gemacht). Diese Technik ist als Inline-Popup oder CSS-Popup bekannt.

Ciao,
 Martin

--
Vielseitigkeit: Von vielen Dingen keine Ahnung haben.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(