我使用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
的渲染仍然是不完整的。