Я использовал Mustache для генерации HTML-кода и insertAdjacentHTML
для размещения его на странице.Очевидно, он хорошо преобразован в структуру DOM, поскольку впоследствии я могу получить к нему доступ, используя вызов document.querySelector('.contentarea')
.Однако, если я пытаюсь получить значение пикселя для ширины или высоты, он продолжает отбрасывать 'auto'
.
Думая, что это может быть просто проблема с getComputedStyle
, я пытался использовать .getBoundingClientRect
и .offsetWidth
вместо.Оба вернули 0
.Это работает, если я немного задерживаю вызов, помещая его в setTimeout(function(){}, 1)
, но это не практично для моего производственного кода, так как он должен идти внутри синхронного конструктора.
Это происходит в обоих Firefox (Аврора)и хром.Я вспомнил, как читал статью о том, как Mozilla улучшил производительность манипулирования DOM, используя ленивую конструкцию фрейма, и подумал, что может быть ошибка, если фреймы немного слишком ленивый, но, поскольку это происходит и в Chrome, этоменее вероятно.
У кого-нибудь есть идеи о том, что здесь происходит или как обойти это?Мне действительно нужна информация о высоте / ширине пикселя сразу после вставки HTML.
PS: какие-либо браузеры выполняют анализ / построение HTML для DOM в отдельном потоке?Я думал, что это может вызвать и такое поведение.
НЕВЕРМИНД: Это была моя вина.Я просто не заметил стиль display: none;
, который был установлен до того, как код попытался получить измерения.