Javascriptでテキストエリア内に入力した内容をプレビューする機能を作っています。


以下のソースでプレビューされるのですが、テキストエリア内の1行目を改行すると
先頭に「undefined」が付いてしまいます。
どの部分を変更・追加すればundefinedを表示させないように出来るのでしょうか?

<script type="text/javascript">
findTextOld = "";

function parseText(msg){
var str = msg.match("\n");
if(str){
var lineData = msg.split("\n");
for(var i=0;i<lineData.length;i++){
resultText += lineData[i];
resultText += "<br/>";
}
}else{
var resultText = msg;
}
return resultText;
}

function textPreview(){
findText = $("comment").value;
if(findText != findTextOld)
{
document.getElementById("preview").innerHTML = null;
$("preview").innerHTML = parseText(findText);
findTextOld = findText;
}
}
window.onload = function (){
setInterval(" textPreview()",500);
}
</script>

回答の条件
  • 1人2回まで
  • 登録:2008/06/24 19:32:46
  • 終了:2008/06/24 21:38:04

回答(3件)

id:Mars No.1

Mars回答回数203ベストアンサー獲得回数202008/06/24 20:17:56

ポイント25pt

function parseText(msg){

の直後に

var resultText = '';

を追加します。

最初の resultText += lineData[i]; が実行されるとき

resultTextが未定義の為、

resultText = undefind + lineData[i];

となってしまっています。

id:kt26

上手くできました。ありがとうございました。

2008/06/24 21:34:32
id:higeorange No.2

higeorange回答回数14ベストアンサー獲得回数12008/06/24 20:23:57

ポイント15pt

function parseText(msg){

return msg.replace(/\n/g, "'<br/>");

}

とすれば OKです.

id:GoldenDawn No.3

GoldenDawn回答回数426ベストアンサー獲得回数812008/06/24 20:26:59

ポイント40pt
function textPreview() {
  findText = $("comment").value ;
  if (findText != findTextOld) {
    $("preview").innerHTML = findText.replace(/\n/g, "<br/>") ;
    findTextOld = findText ;
  }
}

改行を <br/> に変えるだけならこれでいいのでは。

id:kt26

こんなに簡略化できるんですね・・。勉強になりました。ありがとうございました。

2008/06/24 21:36:50

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません