我有一个关于我的 Firefox 扩展的问题。
我有一个 XUL 弹出面板,其中包含一个用于显示标签云的 hbox 和一个用于向此 hbox 添加 div 的 JS 代码:
<hbox id="tag_base" ondblclick="alert('done')"/>
JS:
var root = document.getElementById('tag_base');
var tag = document.createElement('div');
tag.textContent = 'test';
root.appendChild(tag);
var rect = tag.getBoundingClientRect()
alert(rect.top)
我需要获取每个添加的div的尺寸,然而getBoundingClientRect无法正常工作。
如果我删除警告,它总是返回零。
加上警告就不一样了:
第一次调用警告时,尽管div出现在屏幕上,但返回零。
任何后续警告都会返回正确的坐标。如果我在Chromebug中设置断点,所有内容都会正确报告。 如果我不以任何方式打断执行,并运行循环,只有零被返回。
这让我感到非常困惑。 调用"boxObject"会产生相同的结果,而"getClientRects[0]"在第一次调用时未定义。
任何可能导致此问题的提示将不胜感激。