それで、jmaglasangは私に良い考えを与えました. 彼は、IE は pre タグの空白を尊重すると言いました。そこで、javascript で pre タグを挿入し、html を読み込んで、その後で pre タグを削除するのはどうだろうかと考えました。動作しますが、問題があります。setTimeout コールバックを使用する必要があります。コードは次のとおりです。
$("code").each(function()
{ $(this).wrap("<pre></pre>");
var element = $(this);
setTimeout(function() // read the html
{ var x = element.html().split("");
for(n in x)
{ alert(x[n].charCodeAt(0) + " '" + x[n] + "'");
}
}, 0);
});
何らかの理由で、すべての JavaScript の実行が終了するまで IE が html の再レンダリングを待機するため、setTimeout が必要です。ちなみに、setTimeout によって発行されたコールバックの実行も待機します。IEにhtmlをすぐにレンダリングさせる方法を知っていたらいいのにと思います...誰かが知っていれば、私は間違いなく感謝します。