我使用JavaScript構建圖表組件。它有兩層分別渲染:前景和背景。在Firefox中渲染順序
爲了確定背景的所需尺寸:
- 呈現前景
- 測量結果
- 呈現前景和 背景一起
在代碼的高度它看起來像這樣:
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何時執行渲染以及如何延遲我的背景生成直到前景渲染完成,或者是否有任何其他方式來確定我的前景元素的高度?
在回調方法(由setTimeout(...))
叫回我可以看到的身體[測試丹的回答(感謝名單丹)後追加]時,innerHTML
的渲染仍然是不完整的。