Fensterübergreifend
Frank.
- programmiertechnik
0 Jens Müller0 Der Martin0 Frank.
0 misterunknown0 Der Martin0 Frank.0 misterunknown
Hallo,
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?
Gibt es eventuell sogar Beispiele für meine Frage?
Ist es möglich, ein Popupfenster als "immer im Vordergrund" zu definieren?
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.
Deshalb auch gleich die Zusatzfrage: Gibt es bessere Lösungen für mein Vorhaben? (z.b. jquery-flexbox o.ä.)?
Grüße, Frank
morgen Frank,
Deshalb auch gleich die Zusatzfrage: Gibt es bessere Lösungen für mein Vorhaben? (z.b. jquery-flexbox o.ä.)?
Eventuell ist für dich jquery Dialog das richtige. Sieh dir mal die Beispiele Modal und Modal form an.
gruesse aus'm ruhrpott
jens mueller
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
Hallo Martin,
Deshalb auch gleich die Zusatzfrage: Gibt es bessere Lösungen für mein Vorhaben? (z.b. jquery-flexbox o.ä.)?
Es gibt die Möglichkeit ... Diese Technik ist als Inline-Popup oder CSS-Popup bekannt.
Ist die denn "besser"?
Gruß, Frank
Moin,
Ist die denn "besser"?
Gruß, Frank
Du hast damit auf jeden Fall mehr Kontrolle über das Popup. Du kannst bestimmen, wann es kommt, geht oder im Vordergrund ist. Und es hat zumindest meiner Meinung nach keine entscheidenden Nachteile gegenüber einem herkömmlichen Popup. Denn du kannst es per Javascript verschiebbar und wenn du es unbedingt brauchst (was ich nicht glaube) sogar skalierbar machen.
Grüße Marco
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 grundsätzlich. Ich habe hier eine Testseite, die ein Popup generiert und nach 4 Sekunden den Titel ändert. Den Code kannst du dir angucken.
Grundsätzlich gilt: Wenn du ein Popup generierst, dann kannst du mit dem document-Unterobjekt arbeiten.
var popup = window.open(...);
popup.document.formular1.feld1.value = "Oma";
Zum Hintergrund des Ganzen lies dir bitte noch diese Seite zum Fensterzugriff durch.
Ist es möglich, ein Popupfenster als "immer im Vordergrund" zu definieren?
Du kannst nach verschiedenen Aktionen im Hauptfenster das Popup mit popup.focus() wieder in den Vordergrund holen. Es dauerhaft im Vordergrund zu halten ist IMHO nicht möglich.
Grüße Marco
Hi,
Grundsätzlich gilt: Wenn du ein Popup generierst, dann kannst du mit dem document-Unterobjekt arbeiten.
var popup = window.open(...);
popup.document.formular1.feld1.value = "Oma";
ich glaube zu verstehen, dass Frank genau den umgekehrten Weg meint, also vom Popup auf das Elternfenster zuzugreifen. Daher mein Hinweis auf opener.
> Du kannst nach verschiedenen Aktionen im Hauptfenster das Popup mit popup.focus() wieder in den Vordergrund holen.
Focussiert heißt nicht zwangsläufig "im Vordergrund" oder "sichtbar", auch wenn das die übliche Begleiterscheinung ist. Probier zur Verdeutlichung mal `self.blur()`{:.language-javascript}: Dann verliert das Fenster zwar den Focus, bleibt aber dennoch sichtbar zuoberst liegen.
Und selbst das Focussieren geht nur in dem Ausmaß, wie Browser und GUI das zulassen.
Ciao,
Martin
--
[why the heck](http://community.de.selfhtml.org/zitatesammlung/zitat175) do you jerk think, that wir ein doppelposting nicht bemerken, wenn you zwischendurch the sprache wechselst?
(wahsaga)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
ich glaube zu verstehen, dass Frank genau den umgekehrten Weg meint, also vom Popup auf das Elternfenster zuzugreifen. Daher mein Hinweis auf opener.
Ja. Korrekt.
Frank
Moin,
ich glaube zu verstehen, dass Frank genau den umgekehrten Weg meint, also vom Popup auf das Elternfenster zuzugreifen. Daher mein Hinweis auf opener.
Fuck, stimmt, ich hab mich schon irgendwie gewundert, aber scheinbar ist bei mir heute zum Freitag auch die Luft raus^^
Und selbst das Focussieren geht nur in dem Ausmaß, wie Browser und GUI das zulassen.
Stimmt, ich hätte sagen sollen, dass es nicht funktionieren muss. Aber ich dachte, .focus() ist eh die einzige Möglichkeit es zu versuchen. Wenn es nicht funktioniert, dann auch auf andere Weise nicht.
Grüße Marco