[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内の時間や、更新間隔のテキストボックスの値などはベタ書きではないです。

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


[JavaScript] Enterキーで直接Submitする方法と無効化する方法
お問い合わせやユーザー登録などのフォームに入力をするときに、良くあること。 日本語を入力した後、そのままEnterキーで文字を確定しようとしたつもりが、実は英数字入力モードになっていて、入力途中なのにそのままSubmit(送信)されてしまっ...
[JavaScript] 子ウィンドウを開く最大数を指定し、ウィンドウを使いまわす
ヘッダ内に以下を記述。もしくは外部ファイルで用意し、ヘッダ内で読み込む。 <SCRIPT LANGUAGE="JavaScript"> <!-- // ------ ページロード時の初期処理 function setValue(){ max...

コメント

タイトルとURLをコピーしました