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

AJAX Discussion :

[AJAX] Passage de IE6 en IE7 , marche plus


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Par défaut [AJAX] Passage de IE6 en IE7 , marche plus
    Bonjour,
    j'utilise cette fonction Javascript qui me permet d'activer AJAX pour activer un objet PHP en environnement intranet.
    Jusqu'à présent, c'était IE6 et celà marchait fort bien.

    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
    function RequeteJs(_Module,_Classe,_Methode,_Attributs,Valeurs) {
        //    _Module            Module actif
        //    _Classe            classe manipulée
        //    _Methode        méthode de la classe activée
        //    _Attributs        liste des attributs (séparés par des virgules)
        //    Valeurs            liste des valeurs correspondantes aux attributs (séparées par des virgules)
     
        var Parametres = '_Module='+_Module+'&_Classe='+_Classe+'&_Methode='+_Methode+'&_Attributs='+_Attributs+Valeurs;
     
        // .............................................................. Positionnement de la fonction AJAX
        var xhrObjet = null;
        if(window.XMLHttpRequest) {                                    // Firefox
            xhrObjet = new XMLHttpRequest();
        } else {
            if(window.ActiveXObject) {                                // Explorer
                xhrObjet = new ActiveXObject('Microsoft.XMLHTTP');
            } else {                                                // Incompatible
                alert('Votre navigateur ne supporte pas les objets  XMLHTTPRequest dans JAVASCRIPT ...');
                return;
            }
        }
        xhrObjet.open('GET', '../standards/serveur_js.php', true);
        //    alert ('Passage');                                        // Visu Paramètres d'entrée
        //    for (var element in xhrObjet) {
        //        alert(element+xhrObjet.element);
        //    }
        xhrObjet.onReadyStateChange = function() {
            if(xhrObjet.readyState == 4) {
                // ...................................................... Retour de la fonction AJAX
                //    alert(xhrObjet.responseText);                        // Visu Paramètres de sortie
                eval(xhrObjet.responseText);
            }
        }
        xhrObjet.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        xhrObjet.send(Parametres);
    }
    Quelques postes sont passés en IE7 avant la généralisation de cette version et cela ne passe plus ...
    l'appel du php ne se fait plus, car xhrObjet.readyState ne change plus de valeur ...
    Quelqu'un a-t-il rencontré ce problème ?
    L'objet Microsoft Microsoft.XMLHTTP aurait changé de nom ?

    Salut

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par a028762 Voir le message
    L'objet Microsoft Microsoft.XMLHTTP aurait changé de nom ?
    Non, en fait, c'est surtout que depuis la version 7, IE implémente l'objet XMLHttpRequest, ce n'est donc plus l'activeX qui est utilisé dans ton exemple.

    Du coup, ton envoi en GET est erroné : les paramètres doivent être envoyés dans l'URL et non dans le send (il faut donc faire un send(null)), de même, le setRequestHeader est inutile car il ne concerne que les requêtes POST.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre éclairé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Par défaut Changement de fonctionnement de IE
    Bonjour,
    je prends note du changement de fonctionnement,
    merci pour ta réponse Bivino.

    Mais du coup, mon script aurait dû se déclancher sur la ligne suivant le test de XMLHttpRequest
    et se comporter comme Firefox ... (ce qu'il fait d'ailleurs)

    C'est sur le changement de valeur de la propriété onReadyStateChang qui n'a pas lieu .... !

    pour mes tests, je faisais du GET mais en prod, je passais sur POST
    et n'avais pas noté (ni à fortiori compris) qu'il fallait fonctionner différemment dans le Javascript...
    Y a encore du boulot pour bien comprendre ...

  4. #4
    Membre éclairé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Par défaut [Résolu]
    J'avais écris propriété onreadystatechange avec
    des majuscules onReadyStateChange , comme beaucoup de fonctions javascript.
    IE6 vivait très bien avec la syntaxe d'origine, mais pas IE7
    Ouf ! Ce n'était que cela !

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

Discussions similaires

  1. [POO] Document.open dans IE7 ne marche plus ?
    Par jgfa9 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 30/10/2008, 22h58
  2. [AJAX] IE6/7/8, Marche avec Firefox
    Par half_oopss dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 03/04/2008, 12h24
  3. [AJAX] Depuis hébergement javascript marche plus
    Par claire13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/12/2007, 21h50
  4. Problème depuis passage de IE6 à IE7
    Par hfranck dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/01/2007, 11h23
  5. Code qui ne marche plus sur IE7 Beta
    Par Death83 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/03/2006, 00h15

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