Ajax et IE7

Résolu
arnaultp Messages postés 29 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 25 juillet 2007 - 2 juil. 2007 à 16:00
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 3 juil. 2007 à 09:59
Bonjour à tous!
Je viens de me mettre à l'AJAX, et en reprenant un tutorial j'ai une erreur (voire 2 d'ailleurs) qui apparaît et que je n'arrive pas à corriger.
Tout d'abord voici le script :

function ajax()
{
    var xhr = null;
   
    if (window.XMLHttpRequest)
    {
        alert("j'ai Firefox"); // message normalement non destiné à IE
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
        alert("j'ai IE");
        try
        {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    else
    { // XMLHttpRequest non supporté par le navigateur
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
        xhr = false;
    }
    //on définit l'appel de la fonction au retour serveur
    xhr.onreadystatechange = function() { alert_ajax(xhr); }
   
    //on appelle le fichier reponse.txt
    xhr.open("GET", "news.xml", true); // erreur ici-même
    xhr.send(null);
}

function alert_ajax(xhr)
{
    var docXML = xhr.responseXML;
    var items = docXML.getElementsByTagName("nom");
    //on fait juste une boucle sur chaque élément "donnee" trouvé
    for (i=0;i

8 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 juil. 2007 à 16:14
Bonjour,

>>puisque je vois l'erreur à chaque clic...
    laquelle ?
    mais ne serait-ce pas le non respect du format xml  dans le fichier ?
    au fait... ce fichier ce ne devrait pas être du style  http://... ?

quand à la détection de ce qu'il faut utiliser, j'utilise :

//~~~~~~~~~~~~~~~~~~~~~~
function xmlhttp()    //~~ XMLHTTP ~~
//~~~~~~~~~~~~~~~~~~~~~~
{  var x;
    try               {    x = new ActiveXObject("Microsoft.XMLHTTP");    }
    catch (e)     {    try           {    x = new ActiveXObject("Msxml2.XMLHTTP");    }
                             catch (e)  {    try            {    x = new XMLHttpRequest();    }
                                                    catch (e)  {    x=false;    }
                                               }
                        }
    return x;
}
 
mais ... aucun changement entre IE6 et IE7 à ce niveau.



<hr />



Cordialement                    Bul     [mon Site]     [M'écrire]



<hr />
3
arnaultp Messages postés 29 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 25 juillet 2007
2 juil. 2007 à 16:52
Merci pour ta réponse.
Tout d'abord, en essayant ton code, j'obtient quelque chose de bizarre. Tes try...catch se font dans un sens différent que mes essais à moi. Et pourtant IE rentre toujours dans le premier test, quoi qu'il arrive... Du coup, dans l'ordre que tu proposes, cela convient très bien à IE, mais il ne m'affiche toujours rien.
Voici mon fichier xml :

<?xml version="1.0"?>
<exemple>
    <news>
        1
        <nom> Pierrick </nom>
        <titre> Coucou! </titre>
        <date> 02/07/2007 </date>
        <message> toto1 </message>
    </news>
    <news>
        2
        <nom> Alain </nom>
        <titre> Voyons... </titre>
        <date> 02/07/2007 </date>
        <message> toto2 </message>
    </news>
</exemple>

Personnellement, je n'ai fait que reprendre un tuto, et il n'a jamais été dit que l'url devait être sous "http://". Et puis ça marche très bien sous Firefox (oui oui ce n'est pas une raison... bon).
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
2 juil. 2007 à 22:51
Salut

Pour info IE7 implemente httprequest
d'ou tes problemes dans ton post.


http://blogs.msdn.com/ie/archive/2006/01/23/516393.aspx

Sinon dans certain cas il faut passer en mode synchrone sur IE7, mettre le parametre a false ou tu as ton erreur.

J'ai eu cette erreur dans un programme, mais j'ai jamais trouvé la raison, pour ie6 et firefox c'est ok en async
et ie 7 c'est ko en async.

Bon courage
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
3 juil. 2007 à 08:11
>>dans certain cas il faut passer en mode synchrone sur IE7

    c'est bon à savoir.
<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arnaultp Messages postés 29 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 25 juillet 2007
3 juil. 2007 à 09:42
Merci pour vos réponses. Cependant, il doit y avoir un soucis, puisque IE7 implémente en effet httprequest, mais aussi ActiveXObject... ceci est-il normal ou non? Bon en tous cas, moi ça me va très bien. Le seul soucis c'est vraiment l'erreur lorsque j'ouvre mon fichier xml. Le fait de mettre false, ne change rien. Je vais essayer de mettre l'adresse sous la forme "http://", c'est ma dernière issue :/

Merci encore ;)
0
arnaultp Messages postés 29 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 25 juillet 2007
3 juil. 2007 à 09:54
Bon, alors j'ai mis le fichier xml sur mon ftp, et tu avais finalement raison bultez. L'url doit bien être sous la forme "http://". Cependant, cela ne marche que sous IE. Firefox n'affiche plus rien.
J'ai alors tout mis sur mon ftp, dans un même répertoire. Et cette fois-ci tout fonctionne parfaitement sous les 2 navigateurs....enfin! ouf!

Je plainds les développeurs multi-plateforme......................
Merci pour votre aide.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
3 juil. 2007 à 09:57
pour utiliser un .xml, j'ai utilisé une autre méthode :

http://www.javascriptfr.com/codes/CONTROLE-CHAMPS-FORMULAIRE-CCF_43101.aspx et
http://www.javascriptfr.com/codes/LISTE-SOFTS-UTILISES_41421.aspx    et
par exemple : peut-être ?


et http://www.javascriptfr.com/codes/EBAUCHE-LECTEUR-RSS_36794.aspx
        qui lui ne fonctionne pas avec FireFox !



<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
3 juil. 2007 à 09:59
>>L'url doit bien être sous la forme "http://".
    je n'osais l'affirmer. mais curieux que ça semble ne pas fonctionner  sans...



<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
0
Rejoignez-nous