Mam taki o to kod JS, który odpowiada za odświeżanie DIV'a

Sekcja Head
[JAVASCRIPT] pobierz, plaintext
  1. // tworzymy zmienna
  2. var object = false;
  3.  
  4. // tworzymy obiekt XMLHttpRequest (dla IE jest troche inaczej, stad funkcja warunkowa)
  5. if (window.XMLHttpRequest) object = new XMLHttpRequest();
  6. else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
  7.  
  8. // ponizsza funkcja pobiera dane ze wskazanego zrodla (pliku lub skryptu php) do wskazanego
  9. // DIVa poprzez obiekt XMLHttpRequest
  10. function getData(dataSource, divID)
  11. {
  12. // kontynuuje wylacznie gdy obiekt nie jest zajety
  13. if (object.readyState==4 || object.readyState==0)
  14. {
  15. // tworzy zmienna odpowiadajaca konkretnemu obiektowi na stronie
  16. var obj = document.getElementById(divID);
  17.  
  18. // czyta z pliku lub wykonuje skrypt
  19. object.open("GET", dataSource);
  20.  
  21. // definiuje metode obslugi odpowiedzi serwera
  22. object.onreadystatechange = function()
  23. {
  24. // kontynuuje jesli transmisja zostala zakonczona powodzeniem
  25. if (object.readyState == 4 && object.status == 200)
  26. obj.innerHTML= object.responseText;
  27. }
  28. // wysyla zadanie do serwera
  29. object.send(null);
  30. }
  31. }
  32.  
  33. // w ponizszej funkcji wywolujemy funkcje getData z odpowiednimi parametrami
  34. // oraz wywolujemy ja sama rekurencyjnie po co okreslony czas (w naszym wypadku 1000 ms)
  35. function odswiezaj()
  36. {
  37. getData('show_gallery_box.php','lewa');
  38. setTimeout("odswiezaj()", 1000);
  39. }
[JAVASCRIPT] pobierz, plaintext


Body

  1. <script language=javascript>
  2.  
  3. odswiezaj();
  4.  



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 biggrin.gif (forum zawszę ostatecznością) smile.gif

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:
  1. <script src="jquery.js" type="text/javascript"></script>


Wstawiamy nasz kod:
[JAVASCRIPT] pobierz, plaintext
  1. <script>
  2. function odswiez_diva(){
  3. $.post('plik_do_zaladowania.php',{pokaz:'nazwa_diva'},function(odebrane_dane){
  4. $('#nazwa_diva').html(odebrane_dane)
  5. })
  6. setTimeout("odswiez_diva()", 1000);
  7. }
  8.  
  9. </script>
[JAVASCRIPT] pobierz, plaintext


W sekcji BODY nasz DIV'ek:

  1. <div id="nazwa_diva">
  2. <script language=javascript>
  3. <!--
  4. odswiez_diva();
  5. -->
  6. </script>
  7.  
  8. </div>


I finito, gotowe. A co najważniejsze DZIAŁA POD IE.

Pozdrawiam, Maciej