Anti-Idle Script

防止网页挂机的脚本,检测用户无操作时自动刷新或提示

目前為 2025-05-12 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Anti-Idle Script
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  防止网页挂机的脚本,检测用户无操作时自动刷新或提示
// @author       wooluo
// @match        *://*/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // 设置无操作时间阈值(毫秒)
    const IDLE_TIME_THRESHOLD = 300000; // 5分钟
    let lastActivityTime = Date.now();
    let warningShown = false;

    // 检测用户活动
    function updateActivityTime() {
        lastActivityTime = Date.now();
        warningShown = false;
    }

    // 添加事件监听器
    ['mousemove', 'keydown', 'click', 'scroll'].forEach(event => {
        window.addEventListener(event, updateActivityTime, true);
    });

    // 模拟用户活动 - 每30秒轻微移动鼠标1像素
    setInterval(() => {
        const event = new MouseEvent('mousemove', {
            view: window,
            bubbles: true,
            cancelable: true,
            clientX: Math.random() * 10,
            clientY: Math.random() * 10
        });
        document.dispatchEvent(event);
    }, 30000);
    // 定期检查活动状态
    setInterval(() => {
        const currentTime = Date.now();
        const idleTime = currentTime - lastActivityTime;

        if (idleTime > IDLE_TIME_THRESHOLD) {
            if (!warningShown) {
                // 显示警告
                const confirmed = confirm('检测到您长时间无操作,页面将在30秒后自动刷新!点击确定取消自动刷新。');
                if (confirmed) {
                    lastActivityTime = Date.now(); // 重置活动时间
                } else {
                    warningShown = true;
                    setTimeout(() => {
                        window.location.reload();
                    }, 30000); // 30秒后刷新
                }
            }
        }
    }, 60000); // 每分钟检查一次
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址