Thomas S.: Variable übergeben

Hallo Gemeinde

Ich habe ein Frameset mit zwei frames.
Aus Frame eins übergebe ich eine Variable an Frame zwei wie folgt:
parent.textfeld.location.href="javascript:Uebergeben(""document.Formular.Versteckt.value+"")";
Das funktioniert soweit

Im anderen Frame übernehme ich die Variable wie folgt:

...
<body>
<form...>
<script language="Jav...">
function Uebergabe(x)
{
Programmcode ...
}
</script>

Folgende Fehlermeldung erhalte ich:
JavaScript Error: Pfad/Datei
Uebergabe is not defined.

Mir ist nicht ganz klar warum.
Vielen Dank Thomas S.

  1. Hallo Thomas,

    ich versuche mal zu deuten, wo dein Problem liegt. Klappts nicht, einfach das Problemscript online stellen und noch mal posten.

    parent.textfeld.location.href="javascript:Uebergeben(""document.Formular.Versteckt.value+"")";
    Das funktioniert soweit

    Wirklich?
    richtig sollte es wohl heißen
    Uebergeben(""+document.Formular.Versteckt.value+"")";

    besser klappen könnte es mit
    parent.textfeld.Uebergeben(document.Formular.Versteckt.value);

    function Uebergabe(x)
    {
    Programmcode ...
    }
    </script>

    Hier heißt des Uebergabe oben Uebergeben. Ein Tipfehler vielleicht?

    Viele Grüße

    Antje

    1. Hallo Antje

      Wirklich?
      richtig sollte es wohl heißen
      Uebergeben(""+document.Formular.Versteckt.value+"")";

      Du hast recht. Im Script war es aber richtig geschrieben.

      function Uebergabe(x)
      {
      Programmcode ...
      }
      </script>

      Hier heißt des Uebergabe oben Uebergeben. Ein Tipfehler vielleicht?

      Richtig ein Tipfehler von mir.

      Mein anliegen ist es, die Variable in den anderen Frame zu übergeben und aus der Zahl, die in der Variablen steht z.B. 4, vier Textfelder zu generieren. Die Übergabe habe ich auch geschafft (siehe Deine Alternative) aber wie generiere ich daraus die vier Textfelder ?
      Vielen Dank Thomas S.

      1. Hallo Thomas,

        Mein anliegen ist es, die Variable in den anderen Frame zu übergeben und aus der Zahl, die in der Variablen steht z.B. 4, vier Textfelder zu generieren. Die Übergabe habe ich auch geschafft (siehe Deine Alternative) aber wie generiere ich daraus die vier Textfelder ?

        ich schreibe es einfach so auf, ist also ungetestet könnte aber funktionieren:
        Ich gehe davon aus, dass die Seite schon geladen ist.

        <form ....>
        <div id="neuFeld" style="position:absolute"></div>
        </form>

        function Uebergeben(x)
        {
        x=x*1;     /*Konvertiert x in eine Zahl*/
        k="";      /*Textstring*/

        for (i=0;i<x;i++)  /*k erhält die Felder in der Schleifenbelegung*/
        {
        k=k+'<input type="Text" name="a'+i+'" value="" size="" maxlength="">\n');
        }

        if (document.all) document.all.neuFeld.innerHTML=k; /*Schreiben der Felder IE*/
        else    /*Schreiben Navi*/
          if (document.layer)
        { document.neuFeld.document.open();
           document.neuFeld.document.writel(k);
           document.neuFeld.document.close();
        }
        }

        Das funktioniert aber nur in den vierer Versionen. Eventuell muß auch der Formtag mit eingebunden werden.

        Schreib mal wenns klappt.

        Viele Grüße

        Antje

        1. Hallo Thomas,

          es hatten sich doch Fehler eingeschlichen, beim dahinschreiben. Die habe ich jetzt korrigiert und gleich getestet.
          Für den Navigator muß das gesamte Formular geschrieben werden.

          Na dann viel Spaß damit.

          <html>
          <head>
          <title>dynamische Felder</title>
          <script language="JavaScript">
          <!--
            function Uebergeben(x)
          {
          x=x*1;     /*Konvertiert x in eine Zahl*/
          k="";      /*Textstring*/

          for (i=0;i<x;i++)  /*k erhält die Felder in der Schleifenbelegung*/
          {
          k=k+'<input type="Text" name="a'+i+'" value="12" size="10" maxlength="40">\n';
          }

          if (document.all) document.all.neuFeld.innerHTML=k; /*Schreiben der Felder IE*/
          else    /*Schreiben Navi*/
            if (document.layers)
          { k='<form name="b123" onsubmit="alert(document.b123.a2.value);return false;">'+k+'<input type="Submit" value="ab"></form>';
            document.neuFeld.document.open();
             document.neuFeld.document.write(k);
             document.neuFeld.document.close();
          }
          }
          //-->
          </script>

          </head>
          <body>
          <form name="a123" onsubmit="alert(document.a123.a2.value);return false;">

          <div id="neuFeld" style="position:absolute"></div> <br>
          <br>
          <br>

          <input type="Submit" value="ab">
          </form>

          <a href="javascript:Uebergeben(4)">Test</a>

          </body>
          </html>

          Viele Grüße

          Antje