2008年2月14日木曜日

IEで、preタグにinnerHTMLで改行を入れると無視される



HTMLのタグに、記述したままを表示する pre タグがあります。



<pre>
ほげほげ
どもども
こんにちわ
</pre>


br を使わなくても、改行して表示してくれます。


しかし、IEで動的にJavascriptで pre タグにテキストを書き込むと


自動的に改行コードを半角スペースに変換するらしく


思ったとおりに表示できません。


FireFoxやOperaだとそんなことはないようです。


詳しくはこちら


http://d.hatena.ne.jp/brazil/20060917/1158465641


IE用に別に処理を書くしかなさそうです。



// jQuery.js を使用

var doc = "ほげほげ(改行)どもども(改行)こんにちわ(改行)";

if($.browser.msie){
doc = doc.replace(/\x0D\x0A|\x0D|\x0A/g,'\n\r');
$("pre").text(doc);
}else{
$("pre").text(doc);
}

---------------------------------------------------------------
<pre></pre>



IEの場合だけ、改行コードを置換したらうまくいきました。


この手のIE対応は、本当に自分じゃ解決しきれない


難しい現象が多いので、ネットで解法を公開なさってくれている方に


感謝いたします。





1 件のコメント:

はどそん さんのコメント...

ありがとうございます。助かりました。