2012-05-12 4 views
1

это мой Аякса кодAjax сбой IE 7

function sendAjax(send_data,id) 
{ 
    var ajaxobj; 

    alert("After this alert problem occurs!"); 

    if (window.XMLHttpRequest) ajaxobj = new XMLHttpRequest(); 
    else ajaxobj = new ActiveXObject("Microsoft.XMLHTTP"); 

    ajaxobj.onreadystatechange=function() 
    { 
     if(ajaxobj.readyState==4) 
     { 
      if(ajaxobj.responseText.match("confirmPage") != null) document.getElementById(id).innerHTML = ajaxobj.responseText; 
      else 
      { 
      if(id == "FreshContent") 
      document.getElementById(id).innerHTML = "<a id=\"refreshpage\" onClick=\"siteSelection('select')\">Failed.Click here to Reload!</a>"; 
      else 
      document.getElementById(id).innerHTML = "<a id=\"refreshpage\" onClick=\"sendAjax(0,'latest_gossip_marquee');\">Failed.Click here to Reload!</a>"; 
      } 

      } 
     else document.getElementById(id).innerHTML="Loading...."; 
    } 

    if(id == "FreshContent") ajaxobj.open("GET","sitexyz.php?"+send_data,true); 
    else ajaxobj.open("GET","html/xyz.html",true); 
    ajaxobj.send();  
} 

Здесь FreshContent является DIV тег id.it работает в опере & FireFox, но он выходит из строя в моем IE7. , чтобы проверить, верна ли страница, возвращаемая сервером, код проверяет, имеет ли возвращенная страница строку confirmPage.

+0

Спасибо за помощь мне :-) – wenn32

+0

вы рассмотрели с использованием библиотеки для этого, а не писать свою собственную функцию Ajax? jQuery - это очевидное предложение, но есть много выбора, поэтому не нужно писать самостоятельно. – Spudley

ответ

1

Попробуйте эту функцию - это little more robust, чем вы используете.

function getHTTPObject() { 
    var xhr = false; 
    if (window.XMLHttpRequest) { 
    xhr = new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { 
    try { 
     xhr = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch(e) { 
     try { 
     xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch(e) { 
     xhr = false; 
     } 
    } 
    } 
    return xhr; 
} 
Смежные вопросы