2013-08-14 2 views
0

저는 PHP 스크립트가 실행되는 동안 ajax 스크립트를 사용하여 iframe에 로딩 애니메이션을 표시하고 있습니다. PHP 스크립트가 실행되면 Ajax 로딩 스크립트가 완성 된 PHP 스크립트 출력을로드합니다.Ajax iframe 요청은 Internet Explorer에서 한 번만 작동합니다.

업데이트 : 대체하여이 문제를 해결 한 :

url='action.php?run=go'; 
http.open("GET",url, true); 

로 :

http.open("GET", "go.php?random=" + Math.random(), true); 

나는 IE가 각 요청을 캐시하고 두 번 이상 요청을 전송 좋아하지 않는 것을 읽어 보시기 바랍니다.

<!DOCTYPE html> 

<script type="text/javascript"> 
document.write('<link rel="stylesheet" href="../css/loading.css" type="text/css" /><div id="loading"><br><center>Please Wait...<br><br><img src="loader.gif"/><center></div>'); 
//Ajax Function 

function getHTTPObject() { 
    var xmlhttp; 
    if (window.ActiveXObject) { 
     try { 
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try { 
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (E) { 
       xmlhttp = false; 
      } 
     } 
    } else { 
     xmlhttp = false; 
    } 
    if (window.XMLHttpRequest) { 
     try { 
      xmlhttp = new XMLHttpRequest(); 
     } catch (e) { 
      xmlhttp = false; 
     } 
    } 
    return xmlhttp; 
} 
//HTTP Objects.. 
var http = getHTTPObject(); 

//Function which we are calling... 

function AjaxFunction() { 
    url = 'action.php?run=go'; 
    http.open("GET", url, true); 
    http.onreadystatechange = function() { 
     if (http.readyState == 4) { 
      //Change the text when result comes..... 
      document.getElementById("loading").innerHTML = http.responseText; 
     } 
    } 
    http.send(null); 
} 
</script> 
</head> 
<body onload="AjaxFunction()"> 
</body> 
+0

버튼 코드와 관련된 자세한 정보를 제공해주십시오. – fvgs

답변

-2

jQuery를 사용할 수 있습니까? 그것은 당신이 필요로하는 아약스에 대한 모든 보일러 도금을 가지고 있습니다. .ajax

0

ActiveXObject를 테스트하기 전에 xmlhttp = new XMLHttpRequest();을 시험해보십시오. 후자는 이전 버전의 IE (IE 5 & 6)와의 호환성을 위해 사용됩니다. 그러나 최신 버전의 IE는 XMLHttpRequest 개체를 지원합니다. 코드를 읽을 수 있도록 들여 쓰기를 시도 할 수도 있습니다.

또한 JS & AJAX를 처음 사용한다고 언급 했으므로 jQuery를 사용하면 AJAX를 사용하는 것이 매우 쉽습니다. 저는 개인적으로 jQuery와 제 자신의 AJAX 함수를 사용합니다. 그래서 실제로, 당신이하는 일은 완벽합니다. 하지만 번거롭지 않고 jQuery를 사용하면됩니다.

+0

답장을 보내 주셔서 감사합니다. xmlhttp = new XMLHttpRequest();를 옮겨 보았습니다. 건의 한대로 채우고 그러나 결과는 아직도 동일이다. 실제로 IE에서 한 번 작동하므로 처음 버튼을 누르면 모두 잘됩니다. 그러나 브라우저를 닫지 않는 한 처음 버튼을 누른 후 언제든지 IE에서 버튼이 더 이상 제대로 작동하지 않습니다. – jcrane

+0

그냥 jquery를 사용한다면이 코드는 어떻게 생겼을 까? – jcrane

+0

jQuery의 기초를 배우고 .ajax() 함수에 대한 API를 살펴 보는 것이 좋습니다. http://api.jquery.com/jQuery.ajax/ – fvgs

관련 문제