[AJAX] Incompatibilité AJAX && IE
Bonjour à tous,
c'est ici mon premier post, je le poste sur plusieurs forums au cas où (Ne vous vexez pas hein :aie: )
Donc voilà, une petite requete trouvée dans un tuto, le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| function HTTPRequestObject ()
{
var xhr_object = false;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest(); // Firefox et autres
else
if(window.ActiveXObject) // Internet Explorer
{
try {xhr_object = new ActiveXObject("Msxml2.XMLHTTP");}
catch (e) {xhr_object = new ActiveXObject("Microsoft.XMLHTTP");}
}
else // XMLHttpRequest non supporté par le navigateur
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr_object = false;
}
return xhr_object;
}
function getFormData(form)
{
var data1 = "";
var form = document.getElementById(form);
var elements = form.elements;
for(var i=0; i<form.length; i++)
{
data1 += elements[i].name + "=" +escape(elements[i].value);
if((i+1)<form.length)
{
data1+="&";
}
}
return data1;
}
function ajax(xhr_url,divPos,method,data2)
{
var data = "";
if(data2 != null)
{
if(method=="GET")
{
data=data2;
method="POST";
}
else
{
data = getFormData(data2);
}
}
var xhr = HTTPRequestObject();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function()
{
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if (document.getElementById(divPos) && xhr)
{
if (xhr.readyState == 4)
{
if (xhr.status == 200 || xhr.status == 304)
{
document.getElementById(divPos).innerHTML = xhr.responseText;
}
else
{
document.getElementById(divPos).innerHTML = 'Error ' + xhr.status + ' : ' + xhr.statusText;
}
}
else
{
document.getElementById(divPos).innerHTML = 'Chargement en cours... veuillez patienter... .. .' + xhr.readyState;
}
}
}
// Ici on va voir comment faire du post
xhr.open("POST",xhr_url,true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
xhr.send(data);
return false;
} |
Et la page :
http://88.191.24.26/~monteleu/test/
Resultat : rien ne bouge sous IE j'ai constamment
Chargement en cours... veuillez patienter... .. .3
AUtrement dit : le fichier n'est jamais completement chargé...
Résolu : IE ne supporte pas le Innerhtml et getelementbyid pour un <p>