[JavaScript] Problem mit Ajax und dem geliebten IE

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] Problem mit Ajax und dem geliebten IE

    Hallo,
    ich habe folgendes Problem:
    Ich habe eine Website gebaut, die zur linken ein ul-li-Menü besitzt sowie einen Div namens "content".
    Pro li-Menüpunkt habe ich ein onclick-Event eingebaut, der eine Ajaxfunktion in Gang bringt, deren Ergebnis mit dann in "content" angezeigt werden soll. Soweit so gut, im FF kein Problem, doch IE stellt sich tot.

    JS:
    Code:
    var step = 0; 
    if (step == 0) { 	
       doAjax('willkommen'); 
    }   
    
    function doAjax(type) {	
       if (window.XMLHttpRequest) { // Mozilla, Safari, ...
          http_request = new XMLHttpRequest(); 	
       } else if (window.ActiveXObject) { // IE 		
          http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
       } 	
       http_request.open("GET",'php/functions/ajax.php?action=display&type='+type,true); 	
       http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 	
       http_request.send(null); 	
       http_request.onreadystatechange = checkPosition; 
    }  
    
    function checkPosition() { 	
       if (http_request.readyState == 4 && http_request.status == 200) {
          document.getElementById('content').innerHTML = http_request.responseText; 	
       } 
    }
    Jemand eine Idee wo sich das Problem versteckt hält? Habe leider auch bei google nichts sinnvolles finden können.

    Danke!

  • #2
    PHP-Code:
    http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
    muss nur bei POST verwendet werden. vielleicht liegt es daran?

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Original geschrieben von Kropff
      PHP-Code:
      http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
      muss nur bei POST verwendet werden. vielleicht liegt es daran?

      peter
      Habs gelöscht, leider ohne Erfolg....narfff

      Kommentar


      • #4
        bau mal nacheinander den jeweiligen http_request in einen try ...catch block. irgendwas muss ja ausgegeben werden. und zeitgleich immer schön mit alert arbeiten. schau dir ggf. mal das tutorial an. das funzt auch im ie.

        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Hmm...habe nun einiges ausprobiert.
          Ich habe ja die js-Datei mittel src eingebunden. Selbst wenn diese Datei nur ein alert('test'); enthält spuckt er mir das nicht aus?!

          Kommentar


          • #6
            javascript deaktiviert? wo hast du die datei eingebunden? mal mit einem onload herumgespielt? webserver installiert? sorry für die dummen fragen, ist aber alles schon vorgekommen.

            btw: mal die lösung von meinem tutorial ausprobiert? wenn ja und es trotzdem nicht funzt, dann liegt es an deinem client-server-system.

            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              So ist's eingebundn:
              Code:
              <script type="text/javascript" src="java/ajax.js"></script>
              Java scheint an im IE. Und serverseitig muss auch alles fit sein, da es beim FF, Opera & Chrome funzt.

              Mit onload hab ich nicht rumgespielt....bin dahingehend auch noch etwas Newbie, wobei ich imo auch keinen Elan habe mir das Tut durchzuackern (Nix gegen das Tut, nur ich sitz grad den ganzen Tag schon an Code^^).

              Ich vermute mittlerweile auch, dass es am IE liegt....

              Kommentar


              • #8
                Sooo, habe nun mal den IETester angeworfen:
                5.5: funzt
                6: funzt
                7: funzt nicht, mit Fehlermeldung "Fehler im Skript", IETester dann nur noch via TaskMgr zu killn, da das Fenster nicht mehr verschwinden möchte.
                8beta: funzt, jedoch mit Skript-Fehlermeldung hierbei, wobei document.getElement... null sein soll bzw. kein Objekt:



                Nuuuuunjaaaa :-)
                Code:
                function checkPosition() { 	
                   if (req.readyState == 4 && req.status == 200) { 
                      document.getElementById('content').innerHTML = req.responseText; 	
                   } 
                }
                Zuletzt geändert von KillUrMind; 06.11.2008, 21:37.

                Kommentar


                • #9
                  müsste das
                  http_request.onreadystatechange = checkPosition;

                  nicht so aussehen:
                  http_request.onreadystatechange = checkPosition();

                  wobei das deine fehlermeldung net erklärt
                  Die Milch bleibt ranzig!

                  Kommentar


                  • #10
                    Original geschrieben von RanzigeMilch
                    müsste das
                    http_request.onreadystatechange = checkPosition;

                    nicht so aussehen:
                    http_request.onreadystatechange = checkPosition();
                    nein, denn deine version wirft dann eine meldung aus

                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      nicht so aussehen:
                      http_request.onreadystatechange = checkPosition();
                      Nop, du willst ja, dass deine Funktion als EventHandler beim ReadyStateChange ausgelöst wird. Und das ist die checkPosition-Funktion, nicht das Ergebnis.

                      Kommentar

                      Lädt...
                      X