JavaScriptで改行を出力する際にエスケープではまる

JavaScriptのコーディングではまった話。

HTMLで改行を出力するなら<br>タグを使うのだが、フォーム内に出力する場合にはそうもいかない。input(インプット)とかtextarea(テキストエリア)とかの場合だ。

ということで、JavaScriptで改行コードを出力するためには「¥n」を使う。

HTML内にゴリゴリ書いていると、このままでは改行にならない。どうやら「¥」をエスケープしなくてはならない。

ということで、「¥¥n」とすると意図したとおりに動作するようになった。

続いて、HTML内にごりごり書いていたJavaScriptのコード部分を、jsファイルとして分離する。こうすれば、ほかのHTMLファイルでも使いまわしがきくようになる(別ファイル読み込み時もキャッシュされてるので、再読み込みが不要になる)というわけだ。

しかし、ここではまる。「&yen」がよぶんに出力されるのだ。どうやら、先のエスケープ部分が邪魔になっている模様。

ということで、あらためて「¥n」とする。

HTMLファイル内にいれる場合と、jsファイルで分離する場合では扱いが違うようだ。いまさらながらメモ。

コメントを残す

メールアドレスが公開されることはありません。