Wert aus Popupfenster übergeben
Marc Dannemann
- javascript
0 molily0 Marc Dannemann0 molily0 Marc Dannemann0 Tom
0 ChrisB
Hallo Leute, folgendes Problem:
ich möchte für meine Seite eine Suchfunktion einbauen, die sich in einem Popupfenster öffnet. Nachdem dann in diesem neuen Fenster die Werte gefiltert worden sind möchte ich, dass bei Klick auf einen Link der gewünschte Benutzername wieder an das Ursprungsfenster, aus dem das Popup geöffnet wurde zurückgegeben wird und gleichzeitig auch das Popup geschlossen wird. Doch leider besitze ich nicht wirklich sehr viele Kenntnisse in Javascript, so dass ich dieses Problem leider nicht ohne Hilfe lösen kann. Gibt es ein bestimmtes Objekt, mit dem das Ursprungsfenster angesprochen wird oder funktioniert das ganz anders? Würde mich über eure Hilfe sehr freuen.
Mfg Marc
der gewünschte Benutzername wieder an das Ursprungsfenster, aus dem das Popup geöffnet wurde zurückgegeben wird und gleichzeitig auch das Popup geschlossen wird.
function übergebenUndSchließen () {
var benutzername = "foo";
opener.benutzername = benutzername;
window.close();
}
Nach Aufruf der Funktion steht im Ausgangsfenster eine globale Variable namens benutzername zur Verfügung, die den Wert "foo" enthält.
Und das Popup-Fenster wird geschlossen (http://de.selfhtml.org/javascript/objekte/window.htm#close).
Gibt es ein bestimmtes Objekt, mit dem das Ursprungsfenster angesprochen wird
Richtig vermutet, es lautet opener.
http://aktuell.de.selfhtml.org/artikel/javascript/fensterzugriff/
Mathias
Hallo Mathis, das funktioniert soweit schonmal gut. Wenn ich jetzt per alert(opener.benutzername) den Wert der Variablen anzeige passt das ganze.
Nach Aufruf der Funktion steht im Ausgangsfenster eine globale Variable namens benutzername zur Verfügung, die den Wert "foo" enthält.
Allerdings überlege ich jetzt noch, wie ich mittels einer Funktion bzw. einer Anweisung den Wert an meine Textbox im Formular übergebe, wenn ich den Wert aus dem Popup erhalten habe. Denke mal dass das mit einem Event-Handler gehen wird allerdings habe ich schon mehrere Sachen ausprobiert, die allesamt nicht funktioniert haben. Hoffe du kannst mir auch noch bei dieser kleinen Stolperfalle helfen!
Mfg Marc
den Wert an meine Textbox im Formular übergebe, wenn ich den Wert aus dem Popup erhalten habe
Du kannst den Wert eines Formularfeldes im Ausgangsfenster auch direkt aus dem Popup-Fenster beschreiben:
opener.document.forms.MeinFormular.elements.MeinFeld.value = "foo";
Oder über eine ID:
opener.document.getElementById("MeinFeldId").value = "foo";
Siehe:
http://de.selfhtml.org/javascript/objekte/elements.htm (Allgemeine Verwendung)
http://de.selfhtml.org/javascript/objekte/elements.htm#value
http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id
Einen Event »hat Daten aus dem Popup-Fenster empfangen« gibt es nicht, du kannst höchstens vor dem Schließen eine Funktion im Ausgangsfenster anstoßen. Z.B.
opener.funktion("wert")
Ansprechen des Formularsfeldes geht dann wie oben, nur ohne opener davor.
Mathias
opener.document.forms.MeinFormular.elements.MeinFeld.value = "foo";
Manchmal frage ich mich echt warum ich auf sowas nicht alleine komme ;)
Jedenfalls nochmal besten Dank für die Info!
Mfg Marc
Hello,
opener.document.forms.MeinFormular.elements.MeinFeld.value = "foo";
Manchmal frage ich mich echt warum ich auf sowas nicht alleine komme ;)
Und wo Du schonmal dabei bist, kannst Du auch gelich noch überlegen, was wohl passiert, wenn das Opener-Fenster zuerst geschlossen wird und dann erst das Popup. :-)
Liebe Grüße aus dem Cyberspace
Tom vom Berg
Und wo Du schonmal dabei bist, kannst Du auch gelich noch überlegen, was wohl passiert, wenn das Opener-Fenster zuerst geschlossen wird und dann erst das Popup. :-)
Mh nun ja, da ich nicht wirklich eine große Leuchte in Javascript bin würde ich jetzt einfach mal raten und sagen dass gar nichts passiert, außer halt, dass sich das Fenster schließt?? Du wirst jetzt wahrscheinlich schmunzeln weil es bestimmt völliger Blödsinn ist aber das ist mir dann auch egal ;) Wäre auf jeden Fall nett, wenn du es mir verraten würdest, dann bin ich in Sachen JS wieder ein bisschen schlauer!
Mfg Marc
Hi,
Allerdings überlege ich jetzt noch, wie ich mittels einer Funktion bzw. einer Anweisung den Wert an meine Textbox im Formular übergebe, wenn ich den Wert aus dem Popup erhalten habe. Denke mal dass das mit einem Event-Handler gehen wird
Dazu brauchst du keinen Event, das kannst du direkt aus dem Popup heraus machen.
Wie man auf Formularfelder zugreifen kann, hast du dir ja sicher schon angesehen - und vor das document, mit dem die dortigen Anweisungen beginnen, setzt du einfach noch die Referenz auf dein Fenster davor, um auf das "richtige" Dokument zuzugreifen:
opener.document.deinFormularName.deinFeldName = wert;
MfG ChrisB