Sekcja Head
// tworzymy zmienna var object = false; // tworzymy obiekt XMLHttpRequest (dla IE jest troche inaczej, stad funkcja warunkowa) if (window.XMLHttpRequest) object = new XMLHttpRequest(); else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP"); // ponizsza funkcja pobiera dane ze wskazanego zrodla (pliku lub skryptu php) do wskazanego // DIVa poprzez obiekt XMLHttpRequest function getData(dataSource, divID) { // kontynuuje wylacznie gdy obiekt nie jest zajety if (object.readyState==4 || object.readyState==0) { // tworzy zmienna odpowiadajaca konkretnemu obiektowi na stronie var obj = document.getElementById(divID); // czyta z pliku lub wykonuje skrypt object.open("GET", dataSource); // definiuje metode obslugi odpowiedzi serwera object.onreadystatechange = function() { // kontynuuje jesli transmisja zostala zakonczona powodzeniem if (object.readyState == 4 && object.status == 200) obj.innerHTML= object.responseText; } // wysyla zadanie do serwera object.send(null); } } // w ponizszej funkcji wywolujemy funkcje getData z odpowiednimi parametrami // oraz wywolujemy ja sama rekurencyjnie po co okreslony czas (w naszym wypadku 1000 ms) function odswiezaj() { getData('show_gallery_box.php','lewa'); setTimeout("odswiezaj()", 1000); }
Body
Oczywiście wszystko ładnie pięknie działa, ale NIE pod IE... co doprowadza mnie powoli do stanu kompletnej irytacji...
Przyznam się, że AJAX'a i JS znam powierzchownie, ale patrząc właśnie na zegarek uświadomiłem sobie, że od 5h męczę wujka Google na ten temat


Czytałem o XMLHTTP itp. ale naprawdę nie mam głowy jak przerobić ten kod tak, aby działał odpowiednio pod IE.
Skrypt poprawnie ładuje plik do DIV'a, ale nie odświeża go... a jest to uciążliwe, gdyż odpowiada on za wyświetlanie nowych rekordów z bazy danych bez przeładowania strony, lub po ich usunięciu...
Oczywiście można by powiedzieć "A co tam IE skoro pod Operą i FF działa, to użytkownicy IE mogą użyć sobie zwykłego refresh", a no mogą, ale patent jest taki, że nawet po kliknięciu "refresh" w przeglądarce plik, który jest includowany do diva nie odświeża się.
P.S
Z góry dziękuję za pomoc, gdyż po kliku-nastu godzinach Googlowania jestem już kompletnie zakręcony...
Pozdrawiam,
Maciej
Ok, można zamknąć. Poradziłem sobie sam, wykorzystując biblioteke jQuery
Nie wiem czemu, ale IE ładując plik za pomocą czystego AJAX'a nie odświeża go tylko wczytuje ponownie z historii ;|
Rozwiązaniem okazało się użycie biblioteki AJAX'a. A ponieważ widziałem, że dużo ludzi szuka takiego skryptu do odświeżania DIV'a w czasie to proszę:
Sekcja HEAD:
Importujemy bibliotekę jQuery. Do pobrania stąd:
Wstawiamy nasz kod:
<script> function odswiez_diva(){ $.post('plik_do_zaladowania.php',{pokaz:'nazwa_diva'},function(odebrane_dane){ $('#nazwa_diva').html(odebrane_dane) }) setTimeout("odswiez_diva()", 1000); } </script>
W sekcji BODY nasz DIV'ek:
I finito, gotowe. A co najważniejsze DZIAŁA POD IE.
Pozdrawiam, Maciej