Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kod AJAX nie działa w Internet Explorer
Forum PHP.pl > Forum > XML, AJAX
Kas
Ten kod:

  1. <script type="text/javascript">
  2. function licznik(id)
  3. {
  4. var xmlhttp;
  5. if (window.XMLHttpRequest)
  6. {
  7. xmlhttp=new XMLHttpRequest();
  8. }
  9. else if (window.ActiveXObject)
  10. {
  11. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  12. }
  13. xmlhttp.open("GET","http://niebowsieci.pl/counter.php?id="+id,true);
  14. xmlhttp.send();
  15. }


doskonale działa w Mozilla Firefox i Operze. Niestety, nie działa w Internet Explorer. Czemu?
kamil4u
To IE jest poryte... spróbuj zastosować to wszystko co jest w http://pl.wikipedia.org/wiki/AJAX#Przyk.C5..._XMLHttpRequest Tu masz dobry kurs: http://www.xul.fr/en-xml-ajax.html
#luq
Różne wersje IE mają różne implementacje obiektu XHR.
Dlaczego nie umiesz zdebugować sobie skryptu, to proste, dodajesz jeszcze
Kod
else(
   alert('nie stworzono obiektu xhr');
)
Kas
Do tego to ja już dawno doszedłem...

Kod:

  1. function licznik(id)
  2. {
  3. var xhr;
  4. try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
  5. catch (e)
  6. {
  7. try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
  8. catch (e2)
  9. {
  10. try { xhr = new XMLHttpRequest(); }
  11. catch (e3) { xhr = false; }
  12. }
  13. }
  14.  
  15. xhr.open("GET", "http://niebowsieci.pl/counter.php?id="+id, true);
  16. xhr.send(null);
  17. }


  1. function licznik(id){
  2. try
  3. {
  4. xmlHttp=new XMLHttpRequest();
  5. }
  6. catch(e)
  7. {
  8. try
  9. {
  10. xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  11. }
  12. catch(e)
  13. {
  14. try
  15. {
  16. xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  17. } catch(e) {
  18. alert("Your browser does not support AJAX!");
  19. return false;
  20. }
  21. }
  22. }
  23. xmlHttp.open("GET","http://niebowsieci.pl/counter.php?id="+id, false);
  24. xmlHttp.send(null);
  25. }


  1. function licznik(id)
  2. {
  3. var xmlhttp;
  4. if (window.XMLHttpRequest)
  5. {
  6. xmlhttp=new XMLHttpRequest();
  7. }
  8. else if (window.ActiveXObject)
  9. {
  10. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  11. }
  12. else {
  13. alert('nie stworzono obiektu xhr');
  14. }
  15.  
  16. xmlhttp.open("GET","http://niebowsieci.pl/counter.php?id="+id,true);
  17. xmlhttp.send();
  18. }


i kilka innych wariacji działają dokładnie tak samo: w Operze i Mozilli bez zarzutu, w IE za cholerę. blinksmiley.gif Pomocy! Przypuszczam, że problem leży w implementacji metody open w Microsoft Internet Explorer. Niestety, nie wiem co z tym zrobić...
kamil4u
Niestety nie mam IE, ale może masz coś z przeglądarką, bo kod wygląda na poprawny. Najlepiej spróbuj odpalić skrypt na innym IE. Zobacz też czy konsola błędów czegoś nie pokazuje.
fander
użyj jQuery lub Prototype na każdej przeglądarce ajax działa poprawnie.
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.