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 :

Script incompatible avec Firefox, le retour !


Sujet :

JavaScript

  1. #1
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut Script incompatible avec Firefox, le retour !
    Re-bonjour, je viens à nouveau vous embêter avec mon script qui ne marche pas sous firefox.
    Mon problème est différent. J'ai une page php qui me renvoie des données de ma DB, au format XML.
    Je lis, via Ajax et la méthode responseXML.getElementsByTagName, les données contenues dans le XML.
    Comme d'habitude, sous IE, le script marche sans problème, mais sous Firefox, je n'arrive pas à analyser le document XML.

    Revoici le même bout de code que tout à l'heure.
    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
    function addCat(){
        var form = document.forms[1];
        var resp = document.getElementById("admCatResp");
        var xhr= init();
        xhr.open("POST","server/admAddCat.php",true);
        if(checkForm(form)) {
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            xhr.send(getFormData(form));
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4) {
                    alert(xhr.responseXML.getElementsByTagName("Status")[0].text);
                    if (xhr.responseXML.getElementsByTagName("Status")[0].text == "Add"){
                        var id = xhr.responseXML.getElementsByTagName('Id')[0].text;
                        alert(id);
                        var name = xhr.responseXML.getElementByTagName('Name')[0].text;
                        alert(name);
                        new_element = new Option(name,id);
                        form.cbIdCat.options[form.cbIdCat.length] = new_element;
                        resp.innerHTML = "Catégorie n° "+xhr.responseXML.getElementsByTagName('Id')[0].text+" ajoutée";
                    }
                    else if (xhr.responseXML.getElementsByTagName("Status")[0].text == "Update")
                        resp.innerHTML = "Catégorie n°"+xhr.responseXML.getElementsByTagName('Id')[0].text+" modifiée";
                }
                else resp.innerHTML= treatmentError;
                form.reset();
            }
        }
        else resp.innerHTML = errorMsg;
    }
    sous IE, le alert affiche bien "Add', mais sous Firefox, le alert renvoie "Undefined".
    Qu'est-ce qui cloche ?

    Merci d'avance,

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    quel est le code de ta fonction init ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        var form = document.forms[1];
    ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        var form = document.getElementsByTagName('form')[1];
    et je serais toi, je mettrais toute la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.onreadystatechange = function() {[...]}
    avant le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            xhr.send(getFormData(form));
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre averti

    Profil pro
    Enseignant
    Inscrit en
    Juillet 2003
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2003
    Messages : 296
    Points : 441
    Points
    441
    Par défaut
    Le code de init est posté dans un autre thread, qui répond à presque toutes tes questions

    pour le var form..., à l'origine c'était tel que tu l'as dit, seulement ça marchait pas sous Firefox, donc j'ai dû le changer pour la version actuelle.

    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
    function init(){
        var xhr = null; 
        switch ( true ) {    
                        case (!!window.XMLHttpRequest):
                                                xhr=new XMLHttpRequest();
                                                break;
     
                        case  (!!window.ActiveXObject):
                                                xhr=new ActiveXObject("Microsoft.XMLHTTP");
                                                break;
     
                        default : alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
                          }  
        return xhr; 
    }

Discussions similaires

  1. Menu déroulant JavaScript incompatible avec FireFox
    Par moti45 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/03/2009, 00h36
  2. script fonctionne avec Firefox mais boucle sous IE6
    Par ignitionflip dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/01/2009, 16h10
  3. comment rendre compatible ce script avec firefox ?
    Par xav20 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 31/07/2007, 18h35
  4. Script JS incompatible avec firefox.
    Par Raylemon dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 29/05/2006, 17h29
  5. [FLASH 8] Script popup incompatible avec flash8
    Par cosmicgab dans le forum Flash
    Réponses: 4
    Dernier message: 12/05/2006, 11h08

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