2011-10-06 2 views
0

J'utilise le code suivant dans lequel la fonction est appelée onclick:Pourquoi AJAX ne fonctionne pas dans Netscape Navigator?

<html> 
<head> 
<script type="text/javascript"> 
function loadXMLDoc() 
{ 
    var xmlhttp; 
    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("GET","ajax_info.txt",true); 
    xmlhttp.send(); 
} 
</script> 
</head> 
<body> 

<div id="myDiv"><h2>Let AJAX change this text</h2></div> 
<button type="button" onclick="loadXMLDoc()">Change Content</button> 

</body> 
</html> 

Il fonctionne dans tout le navigateur, sauf navigateur netscape

+2

Yikes - Y at-il vraiment des gens qui utilisent encore Netscape Navigator ?? Rappelez-moi: Quand a été la dernière version de ce communiqué? – Spudley

+0

Wikipédia dit: 22 août 2002 (http://en.wikipedia.org/wiki/Netscape_Communicator) –

Répondre

4

Il ne fonctionne pas dans Netscape Navigator parce que ce (ancien) navigateur ne prend pas en charge l'objet XMLHttpRequest, ni l'alternative ActiveX qui fonctionne dans les anciennes versions d'Internet Explorer.

L'objet XMLHttpRequest n'a même pas été inventé lors de la publication de la dernière version de Navigator, et l'alternative ActiveX n'a ​​jamais fonctionné qu'avec IE.

Si vous êtes vraiment désespéré de faire un travail du site moderne Ajax sur un navigateur ancien comme celui-ci, vous pourriez être en mesure de faire quelque chose en utilisant l'ancienne « iframe cachée » technique hack, mais ce serait beaucoup de travail pour un gain pratiquement nul, et vous aurez encore beaucoup d'autres problèmes à résoudre afin de soutenir le navigateur.