<script type='text/javascript'><!-- blok = false; function footx() { if (blok) { return; } var body = document.getElementsByTagName('body')[0]; var html = document.getElementsByTagName('html')[0]; var wrap = document.getElementById('wrapper'); var footer = document.getElementById('footer'); var viewheight = document.documentElement.clientHeight; body.style.height = 'auto'; wrap.style.height = 'auto'; var tabelka = document.getElementById('tabelka_do_zmiany'); var browserName=navigator.appName; if( body.offsetHeight < viewheight-31 ) { footer.style.position = 'absolute'; wrap.style.position = 'absolute'; html.style.height = viewheight+'px'; body.style.height = viewheight+'px'; if ( browserName == "Microsoft Internet Explorer" ) { wrap.style.height = viewheight-32+'px'; tabelka.style.height = viewheight-481+'px'; } else { wrap.style.height = viewheight-31+'px'; tabelka.style.height = viewheight-480+'px'; } blok = true; setTimeout(function() { blok=false; },100); } else { footer.style.position = 'relative'; wrap.style.position = 'relative'; } } footx(); window.onresize=footx; --> </script>
Zadaniem skryptu jest umieszczanie stopki na samym dole strony w momencie kiedy treści jest zbyt mało. W momencie kiedy treści jest odpowiednia ilość stopka umieszczana jest tuż pod nią.
W momencie kiedy jakiś fragment treści strony generowany jest przez JS (np. formularz zapytania, w którym można dodać nieskończoną ilośc pól umieszczanych kolejno pod sobą po kliknięciu w BUTTON dodaj nowe pola), IE jakby nie rozumie, że treść strony uległa zwiększeniu i nie zmienia pozycji stopki mimo uaktywnienia funkcji footx(); tuż po zmianie treści. Próbowałem rozwiązać ten problem pobierając po zmianie treści wysokość diva, w której jest ona umieszczona i za pomocą JS nadawać ją do styli. Nic to nie dało.
W najprostszym przykłądzie wstawiamy DIV o jakimś ID i nadajemy mu za pomocą JS wyskokość 10000px i to i tak nic nie daje, IE twierdzi, że tekstu nie jest za dużo.
Czy istnieje możliwość rozwiązania tego problemu?
Mam wrażenie, że IE pobiera wysokość tudzież szerokość strony ze źródła, a nie wyników działania JS i źróła razem.
Właśnie odkryłem, że problem tyczy się również FF