IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

(Ajax crossBrowser) Internet Explorer..


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut (Ajax crossBrowser) Internet Explorer..
    Bonsoir à tous,

    J'ai trouvé une petite fonction permettant de rafraichir un div par l'intermédiaire d'ajax, elle fonctionne à la perfection sous Firefox, mais rien ne se passe sous Internet Explorer 7 Je suspecte le setTimeout...
    Pourriez vous m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <script type="text/javascript">
    var xhr = null;
    var n=0;
    function getXhr()
    {
         if(window.XMLHttpRequest){xhr = new XMLHttpRequest(); }
    else if(window.ActiveXObject)
      {
      try{
         xhr = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e)
         {
         xhr = new ActiveXObject("Microsoft.XMLHTTP");
         }
      }
    else
      {
      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
      xhr = false;
      }
    }
    function init()
    {
    loop();
    }
    function loop()
    {
    setTimeout('loop();',1000);
    ShowPage();
    }
    function ShowPage()
    {
    getXhr();
    xhr.onreadystatechange = function()
        {
         if(xhr.readyState == 4 && xhr.status == 200)
         {
         document.getElementById('cs').innerHTML=xhr.responseText;
         }
        }
    xhr.open("GET","class/shoutbox.php",true);
    xhr.send(null);
    }
    </script>
    <body onload="init();">
    Par avance merci beaucoup pour votre aide

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    Salut,
    je ne vois pas d'erreur particulière , mais pour obtenir une méthode ajax crossbrowser , je t'orienterais vers cette méthode :

    http://javascript.developpez.com/faq...xmlHttpRequest

    qui ressemble beaucoup a la tienne mais a une ligne près

    test et reviens essaye d'identifier le retour avec des alert

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Merci pour ta réponse !

    J'ai essayé avec la méthode du lien, et c'est kifkif Le truc c'est que la fonction ajax fonctionne sous IE, comme celle que j'avais posté mais c'est quand il s'agit de la relancer toute les 1 seconde que ça coince... bien entendu que sous IE... quelle plaie ce navigateur !!

    Une idée ?

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    le settimeout fonctionne parfaitement je viens de vérifier ...
    l'erreur doit se trouver ailleur essaye de vérifier le retour de xhr , ainsi que de mettre un alert ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(xhr.readyState == 4 && xhr.status == 200)
         {
    alert(xhr.responseText);
         document.getElementById('cs').innerHTML=xhr.responseText;
         }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Bon, ben c'est très curieux ; ça ne fonctionnait pas avant que je mette l'alert comme tu l'as écrit et là ça fonctionne J'avoue ne pas tout piger à ce qui c'est passé, enfin l'essentiel étant que ça marche j'vais pas me plaindre

    Merci infiniment !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème Ajax avec Internet explorer
    Par ralf91 dans le forum ASP.NET Ajax
    Réponses: 0
    Dernier message: 27/07/2011, 10h30
  2. Réponses: 14
    Dernier message: 06/10/2009, 12h03
  3. Struts2 Ajax et Internet Explorer 6 :'(
    Par serj' dans le forum Struts 2
    Réponses: 8
    Dernier message: 26/07/2009, 00h13
  4. [AJAX] ajax et internet explorer 7
    Par michael rossi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/07/2008, 15h39
  5. [AJAX] ajax et internet explorer :s
    Par zakuza dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/04/2007, 19h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo