Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX] IE - skaczący pasek przwijania
Forum PHP.pl > Forum > XML, AJAX > AJAX
gaza
Witam.
Mam problem z IE.
Przy pomocy advAJAX sciagam dane i wstawiam do DIVa

  1. function insertData(id, pref)
  2. {
  3. ref_div = document.getElementById(id);
  4. ref_ico = document.getElementById('ico' + id);
  5.  
  6. advAJAX.get({url: "name_list.php?litera = pref,
  7. onInitialization : function(obj) {parent.showProgressBar();},
  8. onSuccess: function(obj) {ref_div.innerHTML = obj.responseText},
  9. onFinalization : function(obj) {if(parent.IE){find('cfxz'); find(pref + ' (');};
  10. ref_div.style.display='block';
  11. ref_ico.src="icons/rozwiniete.png";
  12. parent.hideProgressBar();}
  13. });
  14. }//end function



Wszystko dziala poprawnie pod Mozilka 1.5.0.2
Problem pojawia sie jednak na IE w wersji 5.5 i 6.

Przejawia sie to tym ,ze pasek przewijania strony "drzy". Niby cos tam sie dzieje , ale nie moge przesunac paskiem strony do samego dolu.
Jednak gdy zastosuje "cwancyk" w postaci wyszukiwania tresci i szukam ostatniej pozycji na liscie , to strona przewija sie wlasnie do tej pozycji i wszystko jest juz w porzadku.
Dodam jeszcze ze problem jest wtedy gdy do DIVa zaladuje ponda 300 elementow ( moze ich byc nawet 5000).

Wyglada na to ,ze IE ma problem z okresleniem wysokosci dokumentu.

Czy jest to normalne ? Czy moze mozna temu jakos zaradzic ?
A moze inaczej powinienem budowac zawartosc DIVa ?
jarrod
Cięzko powiedzieć co sie dzieje... U mnie na IE 7 działa, na drugim kompie na IE 6 też działa.
Przerobiłem ten skrypt. Może będzie lepiej działać..

  1. function insertData(id, data)
  2. {
  3. ref_div = document.getElementById(id);
  4. var html = "";
  5. while(data.length > 1 )
  6. {
  7.  
  8. flag = data.indexOf("\n");
  9. if(flag != -1)
  10. {
  11. part = data.substring(0, flag)
  12. data = data.substring(flag + 1);
  13. }
  14. else
  15. {
  16. part = data;
  17. data = '';
  18. }
  19. html += '<a href="twoj_link">'+ part.substr(0,9) + '</a><br/>';
  20. }//end while
  21. ref_div.innerHTML = html;
  22.  
  23. document.getElementById('id_div).style.display = 'block'
  24.  
  25. }//end function


Spróbuj umieścić div-a w którego umieszczasz text w div-ie o pozycjonowaniu relatywnym. Czasami to pomaga na wiele bolączek winksmiley.jpg
gaza
Dzieki za podpowiedz, niestety nie dziala.

Ktos zasugerowal mi ze problem jest tego rodzaju ,ze IE po dodaniu kolejnych elementow, ma problem z okresleniem dlugosci strony. I w zwiazku z tym rozwiazanie z szukaniem ostatniego elementu na stronie niejako informuje IE o tym gdzie ona sie konczy.

Zatem w tym przypadku trzeba gdzies tam na samym koncu strony wstawic tekst w kolorze strony. Nastepnie podczas uzupelniania kolejnych blokow z elementami, w tle wyszukiwac ten "ukryty" element i nastepnie, jezeli to konieczne, prechodzic do poczatku strony.

Narazie zajalem sie inna czescia projektu, ale jak wroce do tematu , to napisze o efektach tego rozwiazania.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.