2009-05-30 30 views
1

我已經和在工作只是在firefoex沒有錯誤罰款,但IE6加載頁面的狀態欄上一個醜陋的錯誤圖標一個頁面一個AJAX腳本。什麼是我可以去解決/調試這個最好的方法?我怎樣才能調試這個Ajax腳本的IE瀏覽器?

以下是錯誤報告:

alt text

我已經檢查線路323多次下面是函數:

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

您可能希望除了檢查(xmlhttp.status == 200),以檢查的readyState – jdigital 2009-05-30 23:50:02

回答

0

除了outis的回答,如果你想控制,你用調試器跳,使用JavaScript的debugger關鍵字,它就像一個斷點。當打到debugger;的行時,在IE中,你會得到一個提示(如果在IE中啓用了調試,請檢查你的Internet選項),從該行開始啓動調試器。在Firefox中,Firebug將debugger;語句作爲斷點。

0

您正在嘗試閱讀!xmlhttp.responseText當readyState是不是4

嘗試刪除線,看看是否IE中運行。