Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Liens contextuels :

Auteur
Michel74
# 27 Apr 2008 - 10:59:08
Citer
2 Posts
Bonjour,

J'ai un petit script AJAX qui fonctionne avec Firefox et Safari et ne fonctionne pas avec Internet Explorer IE 8 et IE 8.


/*******************************************************************************/
/* */
/* Script AJAX dans un DIV avec rafraichissement toutes les CINQ secondes */
/* */
/* Source : http://openweb.eu.org/articles/objet_xmlhttprequest */
/* */
/* Avec Firefox => OK */
/* Avec Safari => OK */
/* */
/* Avec IE8 et IE7 => Erreur "A Runtime Error has occurred" */
/* Au niveau de : "document.getElementById(strId3).innerHTML = req;" */
/* */
/* */
/*******************************************************************************/

var strId3 = "div_AJAX_3";

function getHTTPObject()
{
var xmlhttp = false;

/* Compilation conditionnelle d'IE */
/*@cc_on
@if (@_jscript_version >= 5)
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
{
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/

/* on essaie de créer l'objet si ce n'est pas déjà fait */
if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
{
try
{
xmlhttp = new XMLHttpRequest();
}
catch (e)
{
xmlhttp = false;
}
}

if (xmlhttp)
{
/* on définit ce qui doit se passer quand la page répondra */
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState == 4) /* 4 : état "complete" */
{
if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
{
req = xmlhttp.responseText;
// alert(req);
document.getElementById(strId3).innerHTML = req;
}
}
}
}
return xmlhttp;
} // Fin de function getHTTPObject()


function Affich_AJAX_3()
{
var strFichier = "script.php";

var xmlhttp = getHTTPObject(); /* Création de l'objet : */
xmlhttp.open("GET", strFichier, true); /* Préparation d'une requête asynchrone de type GET : true => Dialogue asynchrone */
xmlhttp.send(null); /* Effectue la requête : */
setTimeout("Affich_AJAX_3();", 20000); /* Relance script toutes les 5 secondes */
} // Fin de function Affich_AJAX_3()



L'erreur A Runtime Error has occurred se trouve sur document.getElementById(strId3).innerHTML = req;:


req = xmlhttp.responseText;
// alert(req);
document.getElementById(strId3).innerHTML = req;


Nota : req = xmlhttp.responseText; est correct puisque le script fonctionne correctement avec Firefox et Safari. De plus l'activation de alert(req); montre bien le code récupéré.

Si quelqu'un avait une idée, je serai preneur.

Cordialement.
Michel

^
Michel74
# 27 Apr 2008 - 13:26:24
Citer
2 Posts
Bonjour,

Je viens de trouver la cause de mon problème.

Dans le script var strFichier = "script.php"; appelé par xmlhttp.open("GET", strFichier, true); il y avait une commande <form xxx> .

Dès que j'ai sorti <form xxx> de mon script tout s'est mis à fonctionner.

Avec mes remerciements.
Michel

^

référencesLes références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org

Nos partenaires : Editions Eyrolles

Nikozen : Hébergement - Réalisation : Alsacreations.fr

Powered by Phedio v3.7.9 © dew
Contacter l'administrateur - 7.9 ms - Charte