& lt; pré & gt; tag perd les sauts de ligne lors de la définition de innerHTML dans IE

Je suis en utilisant le Prototype du PeriodicalUpdater pour mettre à jour un div avec les résultats de l'appel ajax. Si je comprends bien, la div est mise à jour par l'établissement de ses innerHTML.

La div est enveloppé dans un <pre> tag. Dans Firefox, la <pre> formatage fonctionne comme prévu, mais sous IE, le texte se termine sur une seule ligne.

Voici un exemple de code trouvé ici qui illustre bien le problème. Dans Firefox, abc se trouve sur une autre ligne que def; dans IE c'est sur la même ligne.

    <html>
    <head>
      <title>IE preformatted text sucks</title>
    </head>
    <body>
      <pre id="test">
        a b c
        d e f
      </pre>
      <script type="text/javascript"><!--
      var textContent = document.getElementById("test").innerText;
      textContent = textContent.replace("a", "<span style=\"color:red;\">a</span>");
      document.getElementById("test").style.whiteSpace = "pre";
      document.getElementById("test").innerHTML = textContent;
      --></script>
    </body>
    </html>

Quelqu'un connais un moyen de contourner ce problème?

source d'informationauteur MCS