Frank Pachollek: ex und nix hop

Mein derzeitiges Wissen verdanke ich ausschließlich Stefan. Vielen Dank für Deine tierische Arbeit bei der Erstellung Deines Standardwerkes.
Nachdem mir offenbar die Grundgeschwindigkeit fehlt um umgehend eine Antwort zu geben auf die Eine oder die Andere Frage, habe ich auch eine Frage:

Mein Fenster ist in 2 Frames unterteilt (Anm. wie fast bei allen HP's), eins zur Navigation und das andere ....
Na, Ihr wisst schon.
In meinem Formular (Frame 2) bitte ich um Adressinformationen.

Die Zahlungsart kann man sich in einem Dropdown-Menü aussuchen.

Wählt man Kreditkarte, so öffnet sich ein Fenster mit einem entsprechendem Formular.
onChange="auswahl()"

function NeuFenster()
{
   kreditkarte = window.open("eurocard.htm", "Zweitfenster", "width=420,height=400,scrollbars");
   parent.kreditkarte.focus();
  *1
   return;
}
function auswahl()
{
   if (abfrage.zahlungsart.value == "KK_1")
   {
      NeuFenster();
   }
}
Funktioniert alles tadellos!

Also rein ins Fenster und ein Formular ausfüllen.
Den Inhalt der Felder in einer Funktion Prüfen() überprüfen und gegebenenfalls um Nachbesserung bitten.
Button zum löschen anbieten u.s.w.
Dank Stefans Bibel alles kein Problem.

Doch dann ....

Bei der Rückgabe kommt der Hammer.

Nach dem Hinweis mit alert() Danke für Ihre Daten .....

Wie komme ich zurück? Ugh!#+.
Es klappt nur mit
windows.close()

Doch meine Daten sind dann weg.
Lässt sich das mit parent.variable ..... noch verhindern?

Oh weh!!
Ich bin in meinem Frame(2) nun nicht mehr an der Stelle von der aus ich das Window geöffnet habe.
Also denke ich, kein Problem soll das Window den „Ball" halt mit

parent.shop.focus();

zurück geben.

Ein einfaches
1* alert(„ALARM") ;
wird nicht mehr ausgeführt.
Nun zu meinem Problem:

1. Wie kann ich den Arbeitssklaven zwingen, dort weiter zu machen?
2. Wie übergebe ich am einfachsten ein paar Parameter dem aufrufenden Window (bzw. Frame), ohne die im Forum geschilderte Möglichkeit über name?

Vielen Dank für die Mühe.

Euer Fredchen

P.s. Habe gestern die Bibel in Buchform bestellt.

  1. Ich bin mir leider nicht sicher, ob ich Dich richtig verstanden habe. Selst nach mehrmaligen Lesen.

    Also:

    Du hast ein Forumlar in deinem Frame #2. Waehlst Du etwas bestimmtest in deinem Frame aus, dann oeffnet sich autoamtisch ein Fenster, um dort mehr Daten ausfuellen zu lassen.
    (Jetzt wirds schwer zu verstehen)
    dann moechtest Du in dem Popup das Formular abschicken und die Werte an dein anders Formulat zurueckgeben? Habe ich das bis hierher richtig verstanden und wenn ja, wo ist nun genau das Problem? Du weisst nicht, wie es geht? Etwas spezielles geht nicht?

    Vielleich auch kurz die URL angeben, damit wir helfen koennen.

    Viele Gruesse, Thomas Hieck

    1. Hey Thomas,

      Ich öffne das Fenster:
      function NeuFenster()
      {
         kreditkarte = window.open("eurocard.htm", "Zweitfenster", "width=420,height=400,scrollbars");
         parent.kreditkarte.focus();
        *1
         return;
      }
      Funktioniert alles tadellos!

      Habe dort ein Formular.

      Wie übergebe ich nun wieder an die Stelle *1, nachdem das Formular ausgefüllt wurde?
      Nach windows.close() in eurocard.htm oder
      parent.shop.focus();

      stehe ich nicht bei *1

      Das ist das Problem.

      Ich bin mir leider nicht sicher, ob ich Dich richtig verstanden habe. Selst nach mehrmaligen Lesen.

      Also:

      Du hast ein Forumlar in deinem Frame #2. Waehlst Du etwas bestimmtest in deinem Frame aus, dann oeffnet sich autoamtisch ein Fenster, um dort mehr Daten ausfuellen zu lassen.

      1. Hmmm, das klingt schraeg, aber ich glaub ich weiss, was Du versuchst! Du moechtest einen Formularwert des Popup in eine laufende Javscriptfunktion zurueckgeben, oder?  :-)

        function NeuFenster()
        {
           kreditkarte = window.open("eurocard.htm", "Zweitfenster", "width=420,height=400,scrollbars");
           parent.kreditkarte.focus();
          *1
           return;
        }
        Funktioniert alles tadellos!

        Habe dort ein Formular.

        Wie übergebe ich nun wieder an die Stelle *1, nachdem das Formular ausgefüllt wurde?
        Nach windows.close() in eurocard.htm oder
        parent.shop.focus();

        stehe ich nicht bei *1

        Wie kommst Du darauf, dass Deine Funktion stehen bleibt, nur weil Du ein neues Fenster geoeffnet hast? Die ist nun natuerlich schon lange abgelaufen, wenn DU etwas zurueckgeben willst. Vor allem was willst Du zurueckgeben an diese Stelle. Dir wird wohl nichts anderes Uebrigbleiben als noch eine Funktion zu schreiben, die macht was Du willst (was immer das auch ist). Mehr kann ich ohne weiter Informationen nicht sagen, und allgemein daherlabern moechte ich hier nicht.

        Viele Gruesse, Thomas Hieck

        1. Danke Thomas,

          Ich dachte
          parent.shop.focus();
          sei so eine Art GOTO bzw. GOSUB (Gute alte Basic Zeiten).
          Da es offenbar nicht so ist, muß ich
          das ganze in eine Schleife einbauen und warten bis der Anwender das Fenster ausgefüllt hat.
          Wie konnte ich mit so einem Denkfehler soweit kommen?
          Habe ich das richtig verstanden?
          Nun gut, wie kriege ich die Kontrolle aus dem Fenster wieder zurück in meine wartende Schleife?

          1. sei so eine Art GOTO bzw. GOSUB (Gute alte Basic Zeiten).

            Hehe, ich erinnere mich schwach zurueck. Aber das hat nichts mit vernuenftiger programmierung zu tun, auch wenn es in vielen Sprach noch eine solche Anweisung gibt.

            Da es offenbar nicht so ist, muß ich
            das ganze in eine Schleife einbauen und warten bis der Anwender das Fenster ausgefüllt hat.

            BITTE NICHT!

            Ruf doch einfach eine neue Funktion auf, die macht, was du willst.

            Viele Gruesse, Thomas Hieck