• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:入力した文字をステータスバーに流したい)

入力した文字をステータスバーに流したい

このQ&Aのポイント
  • フォームに入力された文字をステータスバーに流す方法を教えてください。
  • 文字入力フォームで入力された文章をステータスバーに表示させる方法を教えてください。
  • 文字をステータスバーに表示するためのJavaScriptコードを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

いろいろとあるので、順番に行きます。 ・a()に渡されている引数が違う onChange時にa()にthisを渡していますが a()内ではtextを渡しています。 onChange時にthis.valueを渡す様にしましょう。 ・停止を行っていない onChangeで行う場合、変更がある度に a()が実行されるので、複数の文字がステータスバーを 流れる事になります。 という事で、onChangeでa()が実行される度に その前に動いていたa()を止めないといけません。 ・<script>の場所がおかしい これは直接関係ありませんが、<script>が<html>~</html>の 外にあります。 一応動くようですが、ブラウザによっては動かないかもしれません。 a()の停止処理があるので、1個functionを間に挟んだ形での サンプルです。 --------------- ここから ----------------- <html> <head> <script language="javascript"> <!-- var pid = 0; //setTimeoutのプロセスID var doing = false; //a()実行フラグ function loop_string( txt ){ if( doing ){ clearTimeout(pid); } if( txt.length > 0 ){ pid = a(txt); } else { doing = false; } } function a(t){ var t_len = t.length; var t_str = t.substring(2,t_len) + t.substring(0,2); window.status = t_str; pid = setTimeout("a('" + t_str + "')",1000); doing = true; } //--> </script> </head> <body> <form method="post"> 文章を入力してください<br> <input type="text" size="30" onchange="loop_string(this.value);"> </form> </body> </html> ------------- ここまで ----------------

akigogo
質問者

お礼

出来ました!ありがとうございます! 丁寧に説明していただき本当に助かりました。 <script>はやっぱり<html>~</html>に入れないとダメなんですね。 教えて下さる方がああいう書き方をしていたのでそのように覚えていました。これからは気をつけます。

すると、全ての回答が全文表示されます。

関連するQ&A