我正在用 JavaScript 构建图表组件。它有两层分别渲染:前景和背景。
要确定所需的背景大小:
- 渲染前景
- 测量结果的高度
- 一起渲染前景和背景
在代码中它看起来像这样:
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
还没有完成。