Javascript XML et Mozilla

Fermé
opeo Messages postés 1 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 11 août 2008 - 11 août 2008 à 17:40
 CarlS - 4 déc. 2008 à 06:24
Bonjour,
Bonjour,
j'ai un très gros souci sur mon code qui marche bien sur IE, mais plante sur Mozilla.
En effet il s'agit en gros de récupérer le choix d'un utilisateur, l'insérer dans un flux xml
qui est utilisé dans l'autre page. Le problème c'est l'affichage du choix de l'utilisateur et
et la construction du flux. Tout ça marche bien sous IE.
j'ai ajouté dans le code le teste des navigateurs, et j'ai les erreurs au niveau de :
xCrit.documentElement.appendChild ->(voilà ce que j'ai fait : xCrit.appendChild()..)
puis
cell = ligne.insertCell();->(ici j'ai fait cell = ligne.insertCell(0); en incrémentant pour chaque cellule)

mais rien ne s'affiche. Je suppose que l'ajout d'attribut n'est pas pris en compte avec ce navigateur !


Voilà les codes :

<script language="JavaScript">
// création d'un objet xCrit

var tab=new Array(3);
var nbcrit = 0;

/*--
-->Ce code en commentaire marche bien sous IE

var xCrit = new ActiveXObject("MSXML.DomDocument");
xCrit.loadXML("<root />");
--*/

//--test (pour avoir le type de navigateur)

if(window.ActiveXObject){
var xCrit = new ActiveXObject("Microsoft.XMLDOM");
xCrit.loadXML("<root />");

}else if(document.implementation && document.implementation.createDocument){

var xCrit = document.implementation.createDocument("","",null);
xCrit.load("<root />");

}else{

alert("Votre navigateur ne prend pas cette méthode de recherche !");

}


//--fin test

var cptCrit = 0 ;

function Crite(ctype, csigne,cval) {
this.ltype = ctype;
this.signe = csigne;
this.valeur= cval;
}
function ajoutcrite(a,b,c){
tab[nbcrit++] = new Crite(a,b,c);
return true;
}
function ajoutCritere(){


var letype = document.MRB.ltype[document.MRB.ltype.selectedIndex].value;
var titre1 = document.MRB.ltype[document.MRB.ltype.selectedIndex].text;
var lesigne = document.MRB.signe.value;
var lavaleur = document.MRB.valeur.value;

if(isNaN(lavaleur)){
alert("Rentrez une valeur numérique SVP merci !");
document.MRB.valeur.focus();
return false
}

for (var K=0;K < nbcrit;K++)
{
if ((tab[K].ltype == letype) && (tab[K].signe == lesigne) && (tab[K].valeur == lavaleur)){

alert("Vous avez déjà sélectionné ce critère ");

return false ;
}
}


if((letype !="")&&(lesigne !="")&&(lavaleur !="")){


var xNoeud = xCrit.createElement("critere"); // Création du nouveau noeud...

xNoeud.setAttribute("id", ++cptCrit); // ... avec ses attributs
xNoeud.setAttribute("letype", letype);
xNoeud.setAttribute("lsign", lesigne);
xNoeud.setAttribute("laval", lavaleur);

xCrit.documentElement.appendChild(xNoeud); // On l'ajoute dans le XML marche avec IE




// AFFICHAGE : tab1 ici est l'id du champ ou va s'afficher le choix de l'utilisateur

ligne = tab1.insertRow(tab1.rows.length-1);
cell = ligne.insertCell(); //cell = ligne.insertCell(0);
cell.className = "border";
cell.align = "center";

cell.innerText = MRB.ltype.options[MRB.ltype.selectedIndex].text;
cell = ligne.insertCell(); //cell = ligne.insertCell(1);
cell.className = "border";
cell.align = "center";

//cell.innerText = MRB.signe.value;
cell.innerText = MRB.signe.options[MRB.signe.selectedIndex].text;
cell = ligne.insertCell(); //cell = ligne.insertCell(2);
cell.className = "border";
cell.align = "center";

cell.innerText = MRB.valeur.value;
cell = ligne.insertCell(); //cell = ligne.insertCell(3);
cell.className = "border";
cell.align = "center";

ajoutcrite(document.MRB.ltype.options[document.MRB.ltype.selectedIndex].value,document.MRB.signe.value,document.MRB.valeur.value);

cell = ligne.insertCell(); //cell = ligne.insertCell(4);
cell.className = "border";
cell.align = "center";
cell.innerHTML = ["<img align='absmiddle' alt='Supprimer ce critère !' src='../images/supr.gif' border='0' onclick='supCritere(" + cptCrit +");' style='cursor:hand'>"];

if(tab1.rows.length >=1){

//document.MRB.chercher.disabled=false ;
document.getElementById("chercher").disabled=false ;
}


}

}
</script>

Je vous remercie d'avance de votre aide .
A voir également:

1 réponse

Salut,

Jai eu le meme probleme, c'est a cause de la demande valeur.
La requete est pas pareille.


en IE:
documentElement.childNodes.item(0).text

en Firefox/Mozilla
documentElement.childNodes.item(0).textContent

:)
0