【发布时间】:2011-01-01 23:28:29
【问题描述】:
我的 Firefox 扩展有问题
我有一个 XUL 弹出面板,其中包含一个用于标签云的 hbox,以及一个用于将 div 添加到此 hbox 的 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]”在第一次调用时未定义。
任何可能导致此问题的提示将不胜感激。
【问题讨论】:
-
在评论中查看 Neil 的回答。 (不确定您是否收到关于 SO 答案的 cmets 通知。)
标签: dom xul coordinates