getBoundingClientRect () возвращает ноль в XUL

У меня проблема с расширением firefox

У меня есть всплывающая панель XUL с hbox для облака тегов и код JS для добавления div в этот hbox:

<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]» не определено при первом вызове.

Мы будем очень благодарны за любые подсказки о том, что может быть причиной этого.

9
задан Nickolay 3 January 2011 в 20:22
поделиться