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] compatiblité FF/IE


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 14
    Par défaut [AJAX] compatiblité FF/IE
    Bonjour à tous,

    J'ai réalisé un code me permettant de lister des dossiers de manière dynamique en ajax/php.

    Cependant j'ai remarqué un soucy avec IE, en effet rien ne se passe sous IE avec une erreur dans mon Javascript qui n'est pas clair du tout. j'ai supposé au début que celà pouvait venir du XMLHTTPREQUEST, mais je ne pense pas.

    La fonction qui crée mon objet XmlHttpRequest

    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
     
    var requete = null; /* On crée une variable qui contiendra l'objet XHR */
     
    function creerRequete() {
     
    try {
     
    	requete = new XMLHttpRequest(); /* On essaye de créer un objet XmlHTTPRequest */
     
    	} catch (microsoft) {
     
    /* Si cela ne marche pas, on a peut-être affaire
     
    à un navigateur de Microsoft. On tente alors de créer un objet ActiveX */
     
    		try {
     
    			requete = new ActiveXObject('Msxml2.XMLHTTP');
     
    		} catch(autremicrosoft) {
     
    /* Autre méthode si la première n'a pas marché */
     
    			try {
     
    				requete = new ActiveXObject('Microsoft.XMLHTTP');
     
    			} catch(echec) {
     
    /* Si aucune méthode ne fonctionne, on laisse l'objet vide*/
     
    				requete = null;
     
    			}
     
    		}
     
    }
     
    if(requete == null) {
     
    alert('Votre navigateur ne semble pas supporter les objets XMLHttpRequest.');
     
    }
     
    }
    Et voici le code de ma fonction ouvrir qui pose problème sous IE

    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
    
    function ouvrir(id) {
    
    /* On récupère la balise doté de l'identifiant précisé */
    
    src = document.getElementById(id);
    
    /* On crée notre super objet XHR global */
    
    creerRequete();
    
    /* On construit à l'avance notre URL en passant les paramètre en GET */
    
    var url = 'arborescence.php?dir='+id;
    
    /* On initialise la fonction de renvoi d'information */
    
    requete.onreadystatechange = function() {
    
    	if(requete.readyState == 4) {
    
    		if(requete.status == 200) {
                            // IE me sort une erreur a ce niveau mais je ne comprend pas pourquoi !!
    			src.innerHTML = requete.responseText;
                              
    		}
    	}
    };
    
    /* On édite les propriété de l'objet : type de paramètre,
    
    url (avec paramètres) et une option autorisant une réponse du serveur */
    requete.open('GET', url, true);
    /* C'est partit ! On envoi la requête XHR au serveur */
    
    requete.send(null);
    
    }
    Merci de votre aide !

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour et bienvenue sur Developpez.com

    Il aurait été intéressant d'avoir le message de l'erreur IE

    Sans cette info, je ne peux que te conseiller de vérifier que l'id que tu passes en paramètre à ta fonction ne correspond pas au name d'un autre élément de ta page.
    Sinon, même vérification avec ce que tu récupères du responseText (vu que tu l'intègres dans la page via innerHTML)

    IE mélange name et id, et dans ces cas là plante comme si l'id était dupliqué ...
    (mais c'est en général lors d'un accès à l'élément, d'où le 1° point à privilégier)

    A+

  3. #3
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 14
    Par défaut
    L'erreur retourné est

    CODE = 0
    Erreur d'exécution inconnu

    Je ne l'avais pas poster car elle n'était pas très clair.

    Voici le code principal de ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <FORM method="POST" name="form">
    				---------------------------------------------------------------------------------------------------------------------------
    				<br></br>
    				<input type="Submit" value="Zip&Download">
      				<br></br><br></br>
     
     
                   <p id="c:/test"><span class="dirclose" onclick="javascript:ouvrir('c:/test');">c:\test\</span></p>
    				</FORM>
    j'ai cependant vérifié l'état de mes variables et elle sont toutes bonnes :

    requete.readyState == 4 OK
    requete.status == 200 OK
    requete.responseText contient bien tout mon XML généré

    les id de mes éléments correspondent au PATH de mon élément alors que le name est soit

    chkfile[] pour un fichier
    chkdir[] pour un folder

  4. #4
    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
    Ben c'est sûr qu'en donnant à tes variables des noms comme id, src, url, form etc... tu vas pas aider IE à s'en sortir.
    Pour info, tous ces noms sont aussi des noms de propriétés d'objets JavaScript, il faut donc éviter à tout prix de les utiliser comme noms de paramètres, variables, id, name et j'en passe.
    Ensuite, id="c:/test"...
    Un id ne peut être composé que de chiffres (et encore, pas en 1er caractère), lettres, ou _ ce qui doit probablement expliquer l'erreur.
    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

  5. #5
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 14
    Par défaut
    Cependant mon code fonctionne a merveille sous firefox donc je pensais plutot a un problème de type ou qqchose comme ça

    Pour ce qui concerne les id= c:/test celà fonctionne parfaitement sous Firefox, les / doivent être inversé pour bien fonctionner, du moins sur FF

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Sopalinou Voir le message
    Pour ce qui concerne les id= c:/test celà fonctionne parfaitement sous Firefox, les / doivent être inversé pour bien fonctionner, du moins sur FF
    Oui, mais on te parle ici des problèmes que ça peut causer à IE, puisque c'était la question

    A+

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

Discussions similaires

  1. [AJAX] Compatiblité IE<->FF...
    Par metalpetsFR dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/04/2006, 11h30
  2. [AJAX] Ajax et javascript contenu
    Par zekey dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/09/2005, 20h16
  3. [AJAX] AJAX et javascript
    Par spud5351 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2005, 10h16
  4. Probleme de compatiblité avec IE
    Par Fooshi dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/02/2005, 10h05

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