Partage
  • Partager sur Facebook
  • Partager sur Twitter

IE et innerHTML

    26 avril 2009 à 17:30:28

    Salut,

    j'ai un souci avec la fonction innerHTML, j'ai un <PRE></PRE> avec un ID dont je récupère le contenu avec :

    var content = document.getElementById("preId").innerHTML;
    


    Je traite le contenu en remplaçant certains caractères et ensuite je fais :

    document.getElementById("preId").innerHTML = content;
    


    Alors, ça fonctionne très bien sous FF, mais dans IE, le innerHTML écrit tout sur la même ligne !!!
    • Partager sur Facebook
    • Partager sur Twitter
      26 avril 2009 à 18:48:51

      Peux-tu montrer le traitement du contenu (ou carrément un code pseudo-complet qu'on puisse tester concrètement ;) ) ?
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        26 avril 2009 à 22:57:08

        Donnes surtout la fonction de remplacement.
        • Partager sur Facebook
        • Partager sur Twitter
          27 avril 2009 à 8:57:07

          function changeCode()
          	{
          		var codes = document.getElementsByTagName("PRE");
          		var ids = new Array(codes.length);
          		for(var i=0; i<codes.length; i++)
          			{
          				var element = codes[i].id;
          				var content = document.getElementById(element).innerHTML;
          				newContent = content.replace("&lt;", "<span style='color: blue;'>&lt;");
          				newContent = newContent.replace("&gt;", "&gt;</span>");
          				document.getElementById(element).innerHTML = newContent;
          			}
          	}
          


          Voilà, j'ai pas copié mon code source car il est assez gros mais ceci est un concentré. En fait, cette fonction sert à colorer les tag html contenu dans les balises PRE en entourant d'un SPAN.

          J'ai trouvé un début de solution à mon problème hier, cette solution c'est une fonction "nl2br" javascript :

          function nl2br(str, is_xhtml) {
              var breakTag = '';
              breakTag = '<br />';
              if (typeof is_xhtml != 'undefined' && !is_xhtml) {
                  breakTag = '<br>';
              }
              return (str + '').replace(/([^>]?)\n/g, '$1'+ breakTag);
          }
          


          Alors cette fonction marche plutôt bien sauf avec IE (quelle surprise :o ) qui n'affiche pas les tabulations...
          • Partager sur Facebook
          • Partager sur Twitter

          IE et innerHTML

          × 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