Stefan W.: Breite von TD in Javascript: Warum mal definiert, mal 0?

Beitrag lesen

Hallo dartrax,

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.

Woran das jetzt liegt, weiß ich auch nicht; es scheint ein Bug zu sein. Als Workaround würde ich eine Funktion zwischenschalten, die so lange Ehrenrunden dreht, bis der Wert da ist:

function checkOffsetW()
{
  if(document.getElementById("Zelle").offsetWidth > 0)
    test();
  else
    setTimeout("checkOffsetW()", 200);
}

<body onload="checkOffsetW()">

Es muss aber garantiert sein, dass die Zelle immer eine Breite > 0 hat. Sonst müßte noch eine Abbruchbedingung hinein, um zu verhindern, dass die Funktion sich endlos selbst aufrufen kann.

Grüße,
Stefan