dartrax: Breite von TD in Javascript: Warum mal definiert, mal 0?

Beitrag lesen

Hallo!

Seht euch mal das Beispiel unten an. Dort wird über iFrames das gleiche Dokument 25 mal angezeigt. In so einem Dokument ist eine Tabellenzelle, deren Breite ermittelt wird. Das Problem: Die Breite der Zellen wird in den letzten iFrames nicht mehr ermittelt, die Funktion wird aber schon noch aufgerufen. Mir ist aufgefallen, dass die Anzahl der Frames, deren Zellenbreite noch ermittelt wird, abhängig von der Höhe der Frames ist. Deshalb habe ich den auskommentierten focus-Befehl eingefügt, ich finde es aber nicht so schön, jedes Mal das ganze Document durchscrollen zu sehen, und würde lieber den eigentlichen Fehler finden.

Das braucht nur im InternetExplorer funktionieren und muss auf Frames und Tabellen basieren.

Hier der Inhalt von index.htm:

<html>
  <body>

<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>
<iframe src="frame.htm" width="100%" height="100px"></iframe>

</body>
</html>

und frame.htm:

<html>
  <head>

<script type="text/javascript">
      function test()
      {
        //document.getElementById("Zelle").focus();
 document.getElementById("Zelle").innerText = "Breite: " + document.getElementById("Zelle").offsetWidth;
      }
    </script>

</head>
  <body onload="test()">

<table style="width: 640px; border: 1px black solid">
      <tr>
        <td id="Zelle"></td>
      </tr>
    </table>

</body>
</html>

danke,
dartrax