JavaScript でダイアグラム コンポーネントを作成しています。前景と背景の 2 つのレイヤーが別々にレンダリングされます。
背景の必要なサイズを決定するには:
- 前景をレンダリングする
- 結果の高さを測定します
- 前景と背景を一緒にレンダリングする
コードでは次のようになります。
var foreground = renderForegroundIntoString();
parentDiv.innerHTML = foreground;
var height = parentDiv.children[0].clientHeight;
var background = renderBackgroundIntoString(height);
parentDiv.innerHTML = foreground + background;
IE7 を使用すると、これは簡単なことです。ただし、Firefox2 はすぐにレンダリングしようとしないparentDiv.innerHTML
ため、フォアグラウンドの高さを読み取ることができません。
Firefox はいつレンダリングを実行し、フォアグラウンド レンダリングが完了するまでバックグラウンド生成を遅らせるにはどうすればよいですか? またはフォアグラウンド要素の高さを決定する別の方法はありますか?
[Dan の回答をテストした後に追加 (thanx Dan)]
コールバック メソッドの本体内 ( setTimeout(...))
I can see, のレンダリングinnerHTML
はまだ完了していません。