Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probléme IE et objets créés dynamiquement

Sujet résolu
    10 avril 2010 à 19:48:16

    Bonsoir a tous,

    Je voudrai savoir pourquoi mon code marche bien en FireFox, googleChrom, Safari... mais ne marche pas sur IE7????

    Bon mon code fait en sorte de crée des objet dynamiquement, j'ai essayé de déroulé le programme en injéctant des alert a chaque instruction, et il affiche bien les "tagName" correctement. Mais lors de l'affichage il n'affiche rien.... Je vous en pris HELP!!!

    Je vous remerci.
    • Partager sur Facebook
    • Partager sur Twitter
      10 avril 2010 à 20:06:22

      Bah montre ton code -.-
      IE c'est du JScript pas du JavaScript donc il y a plein de différences...
      • Partager sur Facebook
      • Partager sur Twitter
        10 avril 2010 à 20:11:21

        function add(){
        
                //On compte le nombre de label et on sélectionne le premier fieldset
         var verif=true;//verif_objet();
               if(verif){
                var div = document.getElementById("zone_text");
        	div.removeChild(div.firstChild);
                var count = div.getElementsByTagName("tr").length;
                
                count ++;
        
                //création du label( <tr><td><select name="nomx"><option value="">Selection</option></select></td><td><input /></td><td><label>Unite</label></td> <td><label>Valeur x </label></td><td>Nouveau</td><td>Supprimer</td> )
                var tr=document.createElement("tr");
                var td1=document.createElement("td");
                var td2=document.createElement("td");
                var td3=document.createElement("td");
                var td4=document.createElement("td");
                var td5=document.createElement("td");
                var td6=document.createElement("td");
        
                //td1.setAttribute("class","cellule");
                td1.setAttribute("align","center");
        		
                td1.setAttribute("width","90");
                //td2.setAttribute("class","cellule");
                td2.setAttribute("align","center");
                td2.setAttribute("width","90");
                //td3.setAttribute("class","cellule");
                td3.setAttribute("align","center");
                td3.setAttribute("width","90");
        
        
        
        
                var input=document.createElement("input");
                input.setAttribute("type","text");
                input.setAttribute("name","nom"+count+"_2");
        		
                input.setAttribute("size","15");
              td2.appendChild(input); 
                
                var sele=document.createElement("select");
                sele.setAttribute("onchange","afficher(this)");
        //Creation de l'option Vide.
                var opt=document.createElement("option");
                var del_text2 = document.createTextNode("Selectionner");
        // Creation de l'option pour tester.
                var opt1=document.createElement("option");
                var del_text3 = document.createTextNode("voila le premier");
                opt1.setAttribute("value","mourad");
                opt1.appendChild(del_text3);
        
                opt.setAttribute("value","");
                opt.setAttribute("selected","selected");
                opt.appendChild(del_text2);
                sele.setAttribute("name","nom"+count+"_1");
                sele.setAttribute("id","Select"+count+"_1");
        		
        
                sele.appendChild(opt);
                sele.appendChild(opt1);
              td1.appendChild(sele);
                var nom_label=document.createTextNode("Valeur "+count+" ");
                var lab=document.createElement("label");
                lab.appendChild(nom_label);
              td4.appendChild(lab);
        
        
                var label_unite=document.createTextNode("Unite");
        		
                var unite=document.createElement("label");
                unite.appendChild(label_unite);
              td3.appendChild(unite);
        
                // Creation de l'element (<td>Nouveau<td/>)
        
                var del_text1 = document.createTextNode("Nouveau");
                var lien_del1 = document.createElement("td");
                //lien_del1.setAttribute("class","lien1");
                //lien_del1.setAttribute("className","lien1");
        
                if(document.all) lien_del1.attachEvent("onmouseup",nouveau); // pour IE
                else lien_del1.addEventListener("mouseup",nouveau,true);
                
                lien_del1.appendChild(del_text1);
                
                //Création de l'élement td ( <td class="lien">Supprimer</td>)
        
                var del_text = document.createTextNode("Supprimer");
                var lien_del = document.createElement("td");
                //lien_del.setAttribute("class","lien");
                //lien_del.setAttribute("className","lien");
        
                if(document.all) lien_del.attachEvent("onmouseup",del); // pour IE
                else lien_del.addEventListener("mouseup",del,true);
                
                lien_del.appendChild(del_text);
        
                //On raccroche ici tous nos éléments virtuels à une balise de notre fichier XHTML. Ils sont alors affichés   
                tr.appendChild(td1);
                tr.appendChild(td2);
                tr.appendChild(td3);
                tr.appendChild(td4);
                tr.appendChild(lien_del1);
                tr.appendChild(lien_del);
        //div.removeChild();
        div.appendChild(tr);
        
        alert(div.firstChild.tagName);
        }
        else alert("Vous devez remplir tout les champs");
        }
        



        et la page d'acceuil:

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Document sans nom</title>
                <script type="text/javascript" src="fct1.js"></script>
        </head>
        
        <body>
        <table id="zone_text"> </table>
                                                    <p onclick="add();" > Ajouter: </p>
        
        </body>
        </html>
        

        • Partager sur Facebook
        • Partager sur Twitter
          10 avril 2010 à 20:33:22

          C'est un bordel sans nom ton code. Indente correctement.
          Et c'est à quelle ligne que ça merde ? (si tu ne sais pas, mets des alert() et regarde à partir de quand ça ne les affiche plus)

          PS : Nan ton code ça va en fait :p C'est juste que t'as du mal pour indenter...
          • Partager sur Facebook
          • Partager sur Twitter
            10 avril 2010 à 20:42:45

            lol t'as raison xavier, mais tu sais je viens de découvire où est le probléme, tu sais dans IE il crée une balise <tbody>, donc c'est pour ce la que ça ne s'affiche pas, là je voudrai savoir s'il y a pas un moyen de crée mes balise EXACTEMENT comme dans FF et GoogleChrome.


            et je te suis super reconnaissant pour ta participation :-), donc si t'as une résponse je ne dirai jamais non.
            • Partager sur Facebook
            • Partager sur Twitter
              10 avril 2010 à 20:45:32

              Bah ce que tu fous actuellement dans le table, tu le fous dans un tbody que tu fous dans le table.
              Non ?
              • Partager sur Facebook
              • Partager sur Twitter
                10 avril 2010 à 20:50:34

                oui exactement, là je voudrai savoir s'il y a pas un moyen d'enpéché IE de crée ce <tbody>
                • Partager sur Facebook
                • Partager sur Twitter
                  10 avril 2010 à 20:59:12

                  Non.
                  Et je rois que sémantiquement il a raison.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    10 avril 2010 à 21:17:38

                    C'est bon j'ai résolu mon probléme, etant le probléme détécté, il ne me suffisais plus qu'à modifier les parties du code où IE n'execute pas, et aussi décalé les élements d'une place puisque le "parent" est" tbody". Voila, et je te suis infiniment reconnaissant xavier. Merci a tout ceux qui ont voulu participé. Merci.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Probléme IE et objets créés dynamiquement

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown