您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
防止网页挂机的脚本,检测用户无操作时自动刷新或提示
// ==UserScript== // @name Anti-Idle Script // @namespace http://tampermonkey.net/ // @version 0.4 // @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); // 每分钟检查一次 // 2倍速倒计时功能 setInterval(() => { const timeElements = document.querySelectorAll('*'); timeElements.forEach(el => { if (el.textContent.includes('还需') && el.textContent.includes('分钟') && el.textContent.includes('秒')) { const text = el.textContent; const matches = text.match(/(\d+)分钟(\d+)秒/); if (matches) { let minutes = parseInt(matches[1]); let seconds = parseInt(matches[2]); // 计算2倍速后的时间 let totalSeconds = minutes * 60 + seconds; totalSeconds = Math.max(0, totalSeconds - 2); // 每秒减2实现2倍速 minutes = Math.floor(totalSeconds / 60); seconds = totalSeconds % 60; el.textContent = text.replace(/(\d+)分钟(\d+)秒/, `${minutes}分钟${seconds}秒`); } } }); }, 1000); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址