WEB

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

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


https://vertys.net/javascript-enter/ https://vertys.net/javascript-child-window/

-WEB
-,