Felix Riesterer: Daten aus iframe mit Javascript auslesen

Beitrag lesen

Lieber Ricco,

ich habe auch etwas übersehen. Daher Dein negatives Feedback:

Also, so funzt es leider auch nicht.
Bekomme den Fehler:
Error: window.frames.myiframe.document.testform0 has no properties
bzw.
Error: document.getElementsByName("myiframe")[0].contentWindow.document.testform0 has no properties

Du hast ganz recht, wenn Du schreibst:

Scheint also so, als ob JavaScript testform0 nicht als Objekt ansieht, hab' aber keine AHnung warum..

Das warum ist leicht erklärt: Während im iFrame das HTML-Dokument noch lädt, möchte das JavaScript schon Eigenschaften von Elementen wissen, die (weil ja noch am Laden) noch nicht existieren. Man müsste also den Browser dazu kriegen, dass er erst nach derfolgreichem Laden diesen Wert ermittelt. Dazu eignet sich der Eventhandler "onload".

Mein Voschlag:

Wandle Dein Script um in eine Funktion, notiere sie im <head> Deiner "Rahmen"-Seite und notiere im <iframe>-Tag den Eventhandler "onload" mit dem Aufruf Deiner Funktion als Attributwert. Das könnte so aussehen:

test1.htm:  
<html>  
 <head>  
  <title>Test</title>  
  <script type="text/javascript">  
  wertErmittler = function () {  
     var lod = window.frames['myiframe'].document.testform0.testselect0.length;  
     alert("Ermittelte Länge ist " + lod);  
  }  
  </script>  
 </head>  
 <body>  
  <iframe name="myiframe" src="test2.htm" onload="wertErmittler()">  
  </iframe>  
</body>  
</html>

test2.htm:

<form name="testform0" action="select.htm">  
 <p>  
  <select name="testselect0" size="2>  
   <option>1</option>  
   <option>2</option>  
  </select>  
 </p>  
</form>

Im obigen Beispiel ist in test2.htm ein Syntaxfehler: size="2 hat keine schließenden Anführungszeichen...

Liebe Grüße aus Ellwangen,

Felix Riesterer.