私は改行とマルチスペースで書式設定された文字列を持っています。それらをテキストノードに追加したいと思います。Javascriptクロスブラウザの改行で書式設定されたテキスト
<pre id="bar"></pre>
<script>
var string = "Preformatted"
+ "\n" // \r, \r\n, \n\r or what else?
+ "multispace string";
var text = document.createTextNode(string);
document.getElementById('bar').appendChild(text);
</script>
私はラインブレーカーとして採用することを試みた:すべてのブラウザで
\n
ブレイクラインが、IE(私は7でテストしています)に\r
ブレイクラインだけのスペースとなりIE\r\n
二行目の先頭にスペースがすべてに恐怖\n\r
もokですすべてのブラウザではなく、IEで作品、BU IEの最初の行の最後のスペースは私のレイアウトには受け入れられません。
<br>
とinnerHTMLは、IEがマルチスペースを崩壊させるため使用できません。
jQuery .text(string)
の動作はまったく同じ.appendChild(createTextNode(string))
どのようにブラウザ間の改行を挿入できますか?
最終的に、ブラウザが\n
または\r
をサポートしているかどうかを簡単に検出できますか?
あなたはjQueryを使用しているようではありませんが、これがあなたが探しているものなのかどうかは分かりませんが、 'if($ .browser.msie){/ *}ここでは* /} 'と残りは普通ですが、jQueryを使用するか、jQueryのソースに行き、' $。browser.msie'の実装を取得して同じチェックを適用し、他のブラウザとは違って処理する必要があります。 – MilkyWayJoe
**ライブデモ:** http://jsfiddle.net/RMeML/1/ –
@MilkyWayJoe:javascriptソリューションがない場合、jQueryを使用できます。 – Salvador