У меня есть опыт этой проблемы несколько раз, и лучшим решением без использования каких-либо плагинов или неуправляемых функций setTimeout является использование hook в событии onLoad браузера. С JQuery, это делается так:
$(window).load(function(){ ...outerHeight logic goes here... });
Это может быть полностью отделено от стандартного $(function(){ ...code... });
так все вашего другого правильно работающего кода не должен ждать, пока не будет загружен каждый элемент на странице.
Почему это происходит в первую очередь:
Chrome имеет другой алгоритм рендеринга, чем Firefox, который заставляет его инициировать событие OnLoad, прежде чем все элементы на странице полностью погасил/отображаются и доступны для JQuery в выбирать и извлекать высоты. setTimeout()
будет работать большую часть времени, но вы не хотите развивать зависимость от чего-то настолько слепых по своей природе - кто знает, в будущем эта «причуда» в Chrome может быть исправлена!:)
Длинный выстрел, но я думаю, что вам может понадобиться '.outerHeight ({поле: истинно});' –