Fork me on GitHub

Javascript 改行コードの扱い

  • Jun 15, 2007

categoryプラグインは存在しません。

IEのJavaScriptで、改行を含む文字列を扱う際の注意事項。div等の通常タグ内に入っている文字列をinnerHTMLで取得すると、改行が空白文字に変換されてしまう。

例えば以下のようなHTMLがある場合、

<div id="test">line1
line2
</div>

以下のようにすると、

var obj1 = document.getElementById("test");
var str1 = obj1.innerHTML;

取得できる文字列は以下のようになる。

line1 line2 (パターン1)

改行コードは全くなくなる。

これをtextareaタグにして、

<textarea id="test2">line1
line2
</textarea>

以下のようにすると、

var obj2 = document.getElementById("test2");
var str2 = obj2.value;

取得できる文字列は以下のようになる。(ただし改行は\r\n)

line1\n
line2\n (パターン2)

文字列の取得方法は、

var str2 = obj2.innerHTML;

としてもパターン2。セットの際は、

obj2.innerHTML = str2;

とするとパターン1になってしまう。

obj2.value = str2;

でパターン2を維持できる。

Firefoxではどの方法でもパターン2になる。

ブラウザ