8

重複の可能性:
マウスの動きがない場合にのみリダイレクトされるようにこのコードを変更する方法

Javascriptを使用しているユーザーによるアクティビティがない場合は、Webページを更新したいと思います。キープレスまたはマウスクリックのようなユーザーアクティビティ。

4

2 に答える 2

16

ここに基本的な例があります

(function(seconds) {
    var refresh,       
        intvrefresh = function() {
            clearInterval(refresh);
            refresh = setTimeout(function() {
               location.href = location.href;
            }, seconds * 1000);
        };

    $(document).on('keypress click', function() { intvrefresh() });
    intvrefresh();

}(15)); // define here seconds

これにより、キーを押すイベントやクリックイベントがなくても、15秒ごとにページが更新されます(ただし、他の場所で同じイベントが定義されている場合stopPropagation()、イベントが要素に到達できないため、これは正しく機能しません)

于 2012-06-01T11:33:19.857 に答える
6

ページを更新するタイマー(setTimeout)を作成し、キーを押すかマウスを押すたびに、タイマーを再起動します。

必要なことのほとんどを実行するコードについては、この質問を参照してください。

FWIW、これがF.Calderanの答えを次のように書き直したものです。

  1. 不要なクロージャを排除する
  2. アクションをコールバックとして提供することにより、アクション繰り返しから分離します

-

function setIdle(cb, seconds) {
    var timer; 
    var interval = seconds * 1000;
    function refresh() {
            clearInterval(timer);
            timer = setTimeout(cb, interval);
    };
    $(document).on('keypress click', refresh);
    refresh();
}

setIdle(function() {
    location.href = location.href;
}, 15);
于 2012-06-01T11:35:45.700 に答える