人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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>

●質問者: kt26
●カテゴリ:ウェブ制作
✍キーワード:JavaScript STR エリア ソース テキスト
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Mars
●25ポイント

function parseText(msg){

の直後に

var resultText = '';

を追加します。

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

resultTextが未定義の為、

resultText = undefind + lineData[i];

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

◎質問者からの返答

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


2 ● higeorange
●15ポイント

function parseText(msg){

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

}

とすれば OKです.


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

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ