Mam ten problem kilka razy, a najlepszym rozwiązaniem, bez użycia jakichkolwiek wtyczek i niezdyscyplinowanych funkcji setTimeout, jest użycie haka do zdarzenia onLoad przeglądarki. Z jQuery, to się robi tak:
$(window).load(function(){ ...outerHeight logic goes here... });
To może być całkowicie niezależne od standardowego $(function(){ ...code... });
więc cały swój inny kod poprawnie roboczej nie musi czekać, aż każdy pojedynczy element na stronie został załadowany.
Dlaczego tak się dzieje w pierwszej kolejności:
Chrome ma inny algorytm renderingu niż Firefox, która powoduje, że aby wywołać zdarzenia onload zanim wszystkie elementy na stronie są całkowicie wyciągnąć/wyświetlane i dostępne dla jQuery wybierz i pobierz wysokości. setTimeout()
będzie działał przez większość czasu, ale nie chcesz rozwijać zależności od czegoś tak ślepego z natury - kto wie, w przyszłości to "dziwactwo" w Chrome może zostać naprawione!:)
długi strzał, ale myślę, że może być konieczne '.outerHeight ({margin: true});' –