如果使用javascript几秒没有用户活动,如何刷新页面

Sco*_*yon 8 html javascript jquery

可能重复:
如何更改此代码,以便它只在没有鼠标移动时重定向

如果用户没有使用Javascript的活动,我想刷新网页.用户活动,如按键或鼠标单击.

fca*_*ran 13

这是一个基本的例子

(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
Run Code Online (Sandbox Code Playgroud)

这将在没有按键或点击事件的情况下每15秒刷新一次页面(但是如果您在其他地方定义了相同的事件,那么stopPropagation()这将无法正常工作,因为事件将无法到达该元素)

  • 代码不适用于“按键,点击”,需要删除逗号,因此它是“按键点击”。jQuery 只处理点击事件而不是按键事件。 (2认同)

Aln*_*tak 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);
Run Code Online (Sandbox Code Playgroud)