-
- (質問者)
- 投稿時間:2009/07/02 13:44
下のhtmlをIE6で実行したところ preタグの中の改行がうまく改行されず 空白になってしまいます。IE6の仕様でしょうか? 何か解決方法はありますか?コピペする ブログに貼る<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>title</title> </head> <body> <script type="text/javascript"> <!-- var pre = document.createElement('pre'); pre.innerHTML = "aaa\naaa\nbbb"; document.body.appendChild(pre); //--> </script> </body> </html>
- 回答数 (2)
- クリップ数 (0)
- アクセス数 (1768)
-
プログラミング / 開発言語 / JavaScript
- 回答
InnerHTMLでの解決方法はちょっと判りませんが、上記の原因を解説してくれているサイトを見つけました。 ■参考サイト:RapidShare「改行コード、pre、textarea」 http://d.hatena.ne.jp/brazil/20060917/1158465641 参考サイトによると、InnerHTMLでの挿入では、IE6は空白に置き換えられてしまうようです。 私の環境でIE6,7,8を調べてみたところ、全部この現象になりました。 どうやら、IEシリーズの仕様のようですね。 代替案として、ですが、「InnerHTML」の替わりに「createTextNode」を使用しては如何でしょうか。 こちらで同じ表現を再現してみると、IEでは「\r」又は「\n\r」を使用したときにうまく改行がされるようです。 しかし、ブラウザによって改行コードの表現がバラバラですので、サポート環境に合った改行コードをご選択して頂ければと思います。 (改行コードの表示の詳細は参考サイト参照)
-
- (質問者)
- 2009/07/02 14:58
matoateさん早速の回答ありがとうございます。実は若干htmlタグが入る可能性もあるのでinnerTextやcreateTextNode が使えないのです。
IEの場合のみ"\n"=>"<br />"に置き換えるようにしてみたいと思います。 他に良い方法がありましたら またご連絡いただけると幸いです。
2
回答
(2009/11/14 22:45)
by 1minn
- 0クリップ
- 1074アクセス
- プログラミング / 開発言語 / JavaScript
2
回答
2
回答
2
回答
3
回答
4
回答
2
回答
5
回答
3
回答
2
回答
(2009/07/09 15:08)
by function
- 0クリップ
- 1423アクセス
- プログラミング / 開発言語 / JavaScript


