在空闲/不活动60秒后重定向用户?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在空闲/不活动60秒后重定向用户?相关的知识,希望对你有一定的参考价值。

如何在我的网站上使用javascript在60秒不活动后将用户重定向到/logout页面?

我知道设置计时器或使用元刷新标签很简单:但我只想重定向非活动用户,而不是破坏某人的活动会话/使用。

这可以用JavaScript吗?

答案

我相信你正在寻找这样的东西: qazxsw poi

如果您自己编写代码,则需要捕获鼠标和键盘事件,并在发生任何这些事件后重新启动计时器。如果计时器达到阈值或从阈值倒计数到0,则可以重置页面的URL。

另一答案

还有一个更新的插件版本。

它将能够在整个文档或单个元素上触发空闲事件。例如,将鼠标悬停在某个元素上x秒,然后触发一个事件。当用户再次激活时,会触发另一个事件。

此空闲事件将允许您在给定的不活动时间后重定向用户。

支持的活动:mousemove keydown wheel DOMMouseScroll mousewheel mousedown touchstart touchmove MSPointerDown MSPointerMove

http://paulirish.com/2009/jquery-idletimer-plugin/

另一答案

你需要的只是一个像这样的简单函数,而不是使用带有不必要的Kbytes的插件 (见评论中的解释):

https://github.com/thorst/jquery-idletimer

如果要重定向到主页(通常在<script> (function() { const idleDurationSecs = 60; // X number of seconds const redirectUrl = '/logout'; // Redirect idle users to this URL let idleTimeout; // variable to hold the timeout, do not modify const resetIdleTimeout = function() { // Clears the existing timeout if(idleTimeout) clearTimeout(idleTimeout); // Set a new idle timeout to load the redirectUrl after idleDurationSecs idleTimeout = setTimeout(() => location.href = redirectUrl, idleDurationSecs * 1000); }; // Init on page load resetIdleTimeout(); // Reset the idle timeout on any of the events listed below ['click', 'touchstart', 'mousemove'].forEach(evt => document.addEventListener(evt, resetIdleTimeout, false) ); })(); </script> ),请将/更改为'/logout'

'/'

如果要重新加载/刷新当前页面,只需将上面代码中的 const redirectUrl = '/'; // Redirect idle users to the root directory 更改为'/logout'

location.href

以上是关于在空闲/不活动60秒后重定向用户?的主要内容,如果未能解决你的问题,请参考以下文章

JS 60秒后重发送验证码

视频播放结束 10 秒后如何重定向到另一个页面?

如果查询匹配,则使用 Django 在 Ajax 调用后重定向

Firebase 连接检测在 60 秒后不起作用

用户登录后重定向到要访问页面

在输出用户消息后重定向PHP页面