2009-05-30 11 views
1

Ich habe und ein AJAX-Skript in einer Seite, die gut funktioniert, ohne Fehler in Firefox, aber IE6 lädt die Seite mit einem hässlichen Fehlersymbol in der Statusleiste. Was ist der beste Weg, wie ich das beheben/debuggen kann? HierWie kann ich dieses Ajax-Skript für IE debuggen?

ist der Fehlerbericht:

alt text

ich viele Male Linie 323 Hier überprüft haben, ist die Funktion:

function checkAvailability(){ 

    var card_select = document.getElementById('card_select').value; 
    var price_select = document.getElementById('price_select').value; 
    var num_of_cards = document.getElementById('num_of_cards').value; 
    var url = 'checkAvailability.php?cardName=' + card_select + '&value=' + price_select + '&amount=' + num_of_cards; 

    var xmlhttp; 
      if (window.XMLHttpRequest) 
      { 
       // code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp = new XMLHttpRequest(); 
      } 
      else if (window.ActiveXObject) 
      { 
       // code for IE6, IE5 
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      else 
      { 
       alert("Your browser does not support XMLHTTP!"); 
      } 

      xmlhttp.onreadystatechange = function() 
              { 
               if(xmlhttp.readyState == 4 && xmlhttp.responseText) /**** line 323 ****/ 
               { 
                document.getElementById('submit_button').className  = 'hidden'; 
                document.getElementById('div_error_massage').className = 'anounce_div'; 
                document.getElementById('error_massage').innerHTML  = xmlhttp.responseText; 
                document.getElementById('num_of_cards').className  = 'red_inputs'; 
               } 
               else if(isNaN(num_of_cards)) 
               { 
                document.getElementById('submit_button').className  = 'hidden'; 
                document.getElementById('num_of_cards').className  = 'red_inputs'; 
                document.getElementById('div_error_massage').className = 'hidden'; 

               } 
               else if(num_of_cards != "" && !xmlhttp.responseText) 
               { 
                document.getElementById('submit_button').className  = ''; 
                document.getElementById('error_massage').innerHTML  = 'Total: $' + document.getElementById('price_select').value * document.getElementById('num_of_cards').value + '.00'; 
                document.getElementById('div_error_massage').className = 'anounce_div'; 

               } 
               else 
               { 
                document.getElementById('submit_button').className  = 'hidden'; 
                document.getElementById('num_of_cards').className  = 'red_inputs'; 
               } 
              } 




      xmlhttp.open("GET",url,true); 
      xmlhttp.send(null); 

} 
+3

Sie möchten vielleicht für (xmlhttp.status == 200) zusätzlich überprüfen Sie die Readystate auf die Überprüfung – jdigital

Antwort

0

Zusätzlich zu outis 'Antwort, wenn Sie steuern möchten, wo Sie mit dem Debugger springen, verwenden Sie Javascript debugger Schlüsselwort, das wie ein Haltepunkt fungiert. Wenn die Zeile mit debugger; erreicht wird, erhalten Sie im IE eine Eingabeaufforderung (wenn das Debugging in IE aktiviert ist, überprüfen Sie Ihre Internetoptionen), um den Debugger zu starten, beginnend bei dieser Zeile. In Firefox wird die Anweisung debugger; von Firebug als Haltepunkt aufgenommen.

0

Sie versuchen, zu lesen! Xmlhttp.responseText wenn der Readystate nicht 4

Versuchen ist diese Linie zu entfernen und sehen, ob IE läuft.