データサイエンティスト基礎講座

[JavaScript] フォーカスがある間リロードを止める

評価用に作ってみた、リロードを一時停止する処理。METAタグを使ったリロードよりも画面がチカチカするので、これ自体は不採用になったけど、状況によっては使えるかもしれないのでメモメモ。

まずはヘッダに以下のような感じで記述。

<script type="text/JavaScript">
  var id;
  function reload( KBN ){
    if( KBN == "reload" ){
      id = setTimeout("location.reload()", 1000);
    } else if( KBN == "kick" ){
      location.reload();
    } else {
      clearTimeout( id );
    }
  }
</script>

通常は自動更新をかけているので、bodyタグにonLoad()の記述。

<body class="dsp" onLoad='reload("reload")'>

自動再表示のチェックボックスには、以下の記述。

<input type="checkbox" name="flg_reload" value="Y" onClick='reload("kick");'>自動再表示

フォーカスが当たっている間、処理を止めたいテキストボックスなどには、以下の記述。

<input name="reload_time" size="3" maxlength="3" value="10" onFocus='reload("");' onBlur='reload("kick")'>秒間隔で更新

もっといい方法があるかもしれませんが、咄嗟に思いついたやり方がこれ。実際この処理を使った画面はC言語で作ったCGIだったので、Script内の時間や、更新間隔のテキストボックスの値などはベタ書きではないです。

もうちょっとチカチカ(更新のときの点滅)がなければ、いろいろと使えそうなのになぁ……。


フォームに入力中、特に日本語を入力した後に文字を確定しようとしたら、英数字入力モードになっていることに気付かずに、そのままSubmit(送信)されてしまった、な...
ヘッダ内に以下を記述。もしくは外部ファイルで用意し、ヘッダ内で読み込む。 <SCRIPT LANGUAGE="JavaScript&quo...
スポンサーリンク

この記事をシェア

アカウントをフォロー