在空闲/不活动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秒后重定向用户?的主要内容,如果未能解决你的问题,请参考以下文章