Thomas: Value eines elements im iframe auslesen

Hallo liebe User,

ich erstelle gerade einen kleinen Shop auf Java-script-Basis, leider habe ich bei der Funktion, die dem Käufer ermöglichen soll, die Artikelstückzahlen im endgültigen Formular noch zu verändern, ein kleines Problem.
Zum Aufbau. Der Shop ist über einen iframe in die Seite eingebunden, befindet sich aber auf dem gleichen Server.

Ich möchte nun eine Variable eines Elements in dem iframe mit einem auch im iframe eingebetteten Javascript auslesen.

bisher habe ich es so versucht:
for (i in items) {
   upd += eval('document.forms[0].menge'+i+'.value')+'~';
         }

ich erhalte allerdings nur die Fehlermeldung "... ist entweder null oder kein objekt", obwohl dieses Objekt vorhanden ist.

Ich denke, daß die Abfrage wegen dem iframe so nicht funktioniert. Kennt jemand einen Lösungsvorschlag?

Danke schon im Voraus

Thomas

  1. Hi Thomas,

    wenn ich das richtig verstanden habe, müsstest du da noch den Framenamen des iframes angeben:

    upd += eval('iframename.document.forms[0].menge'+i+'.value')+'~';

    Viele Grüße
    Ben

    --
    Phantasie ist wichtiger als Wissen. - Albert Einstein
    1. Vielen Dank für Eure Antworten,

      ich bin mittlerweile durch Zerlegen des ganzen Scripts auf die Lösung gekommen, das Problem lag nur darin, daß in der Items-Variable etwas gespeichert war (### als Trennstriche), die dort nicht hingehörten, deshalb war die schleife nach der eigentlichen anzahl der Items nicht zu ende und den Fehler brachte.
      Trotzdem herzlichen Dank für Eure Mühe,
      ich finde es immer wieder erstaunlich, wie schnell und gerne hier geholfen wird!

      Grüße, Thomas

  2. Hallo Thomas,

    upd += eval('document.forms[0].menge'+i+'.value')+'~';

    Das geht AFAIK eleganter auch so:

    upd += document.forms[0]["menge"+i].value + "~";

    Ich denke, daß die Abfrage wegen dem iframe so nicht funktioniert. Kennt jemand einen Lösungsvorschlag?

    Wenn du das denkst, dann starte doch mal das ganze außerhalb des iframes und erzähl uns dann, was dabei passiert.

    Robert