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 récursif sous IE


Sujet :

JavaScript

  1. #1
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut Ajax récursif sous IE
    Bonjour,

    pouvez-vous me dire pourquoi ce code ne fonctionne pas sous IE, et comment le faire fonctionner ?

    sous Firefox, j'ai bien:
    Code text : 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
    submit un
    1
    1
    2
    3
    4
    200
    un
    submit deux
    1
    1
    2
    3
    etc..
    4
    200
    quatre
    terminé

    alors que sous IE, la page s'arrête sur "submit deux"

    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
    47
    48
    49
    50
    51
    52
    53
    54
     
    <?php
      $q = &$_REQUEST['q'];
      if (isset($q)) die($q);
    ?>
    <html>
    <head>
    <script type="text/javascript">
     
    var liste = ['un', 'deux', 'trois', 'quatre'];
    var index = 0;
    var ajax;
     
     function log(str) {
       document.body.appendChild(document.createTextNode(str));
       document.body.appendChild(document.createElement('BR'));
     }
     
     function submitAjax() {
       if (index < liste.length) {
         log('submit ' + liste[index]);
         ajax.open('GET', 'test.php?q=' + liste[index], true);
         index++;
         ajax.send(null);
       } else {
         log('terminé');
       }
     }
     
     if (window.XMLHttpRequest) 
       ajax =new XMLHttpRequest(); // Firefox 
     else {
       if (window.ActiveXObject) 
         ajax =new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer 
       else
         throw("Votre navigateur ne supporte pas AJAX !"); 
     }
      ajax.onreadystatechange = function() {
        log(ajax.readyState);
        if (ajax.readyState == 4) {
          log(ajax.status);
          if (ajax.status == 200) {
            log(ajax.responseText);
    	    submitAjax();
          } else {
            log(ajax.status);
          }
        } 
      }
    </script>
    </head>
    <body onLoad="submitAjax()">
    </body>
    </html>
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    cette version fonctionne...mais dans le projet plus conséquent où j'ai le pb, je dois également recréer l'objet ajax...étonnant

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <?php
      $q = &$_REQUEST['q'];
      if (isset($q)) die($q);
    ?>
    <html>
    <head>
    <script type="text/javascript">
     
    var liste = ['un', 'deux', 'trois', 'quatre'];
    var index = 0;
    var ajax;
     
     function log(str) {
       document.body.appendChild(document.createTextNode(str));
       document.body.appendChild(document.createElement('BR'));
     }
     
     function createAjax() {
       if (window.XMLHttpRequest) 
         return new XMLHttpRequest(); // Firefox 
       else {
         if (window.ActiveXObject) 
           return new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer 
         else
           throw("Votre navigateur ne supporte pas AJAX !"); 
       }
     }
     
     function submitAjax() {
       if (index < liste.length) {
         log('submit ' + liste[index]);
         index++;
       // ajax = createAjax();
         ajax.open('GET', 'test.php?q=' + liste[index - 1], true);
         ajax.onreadystatechange = stateChange;
         ajax.send(null);
       } else {
         log('terminé');
       }
     }
     
     function stateChange() {
       log(ajax.readyState);
       if (ajax.readyState == 4) {
         log(ajax.status);
         if (ajax.status == 200) {
           log(ajax.responseText);
           submitAjax();
         } else {
           log(ajax.status);
         }
       } 
     }
     
     ajax = createAjax();
     ajax.onreadystatechange = stateChange;
     
    </script>
    </head>
    <body onLoad="submitAjax()">
    </body>
    </html>
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

Discussions similaires

  1. [AJAX] Résultat de requête Ajax vide sous IE, mais pas sous FF
    Par brazilia28 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/09/2007, 16h18
  2. [AJAX] Problème sous IE
    Par captainflex dans le forum Ruby on Rails
    Réponses: 5
    Dernier message: 25/06/2007, 21h44
  3. [AJAX] Ajax marche sous IE mais pas sous Firefox
    Par snoopy92 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 10/05/2007, 18h24
  4. commit récursif sous SVN
    Par nawac dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 09/05/2007, 14h17
  5. [AJAX] Ajax sous internet explorer 7
    Par leoche dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 06/04/2007, 12h41

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