您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Auto-reload a specific webpage at a configurable interval
- // ==UserScript==
- // @name Automatically Refresh Webpage
- // @namespace Automatically Refresh Webpage
- // @description Auto-reload a specific webpage at a configurable interval
- // @version 1.7
- // @author aciid
- // @match http://ENTER_YOUR_OWN_URL_OR_IP_HERE/*
- // @supportURL https://greasyfork.org/en/scripts/491178
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- let intervalId = null;
- let wasPaused = false; // Indicates if the script was paused due to hovering
- let isScriptRunning = false; // Tracks whether the script is actively running or stopped
- // Function to start reloading
- function startReloading(interval) {
- console.log(`Starting reload every ${interval / 1000} seconds.`);
- if (intervalId !== null) clearInterval(intervalId); // Clear existing interval if any
- intervalId = setInterval(() => {
- console.log("Reloading page.");
- window.location.reload();
- }, interval);
- isScriptRunning = true;
- updateStatus('Running');
- }
- // Function to stop reloading
- function stopReloading() {
- if (intervalId !== null) {
- clearInterval(intervalId);
- console.log("Reload stopped.");
- intervalId = null;
- }
- isScriptRunning = false;
- updateStatus('Stopped');
- }
- // Function to update status displayed in UI
- function updateStatus(status) {
- document.getElementById('reloadStatus').textContent = `Status: ${status}`;
- }
- // Load settings from localStorage
- const savedInterval = localStorage.getItem('autoReloadInterval') || 30000; // Default to 30 seconds
- let isReloadingEnabled = localStorage.getItem('isReloadingEnabled') === 'true';
- // UI setup
- const reloadUI = document.createElement('div');
- reloadUI.style = 'position: fixed; bottom: 20px; right: 20px; z-index: 10000; padding: 15px; background-color: #f0f0f0; border: 2px solid #ccc; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1); font-family: Arial, sans-serif;';
- reloadUI.innerHTML = `
- <div style="font-size: 14px; margin-bottom: 8px;"><strong>Refresh Interval (seconds):</strong></div>
- <div style="margin-bottom: 8px;">
- <input type="number" id="reloadInterval" value="${savedInterval / 1000}" min="1" style="width: 60px; padding: 5px;">
- </div>
- <div style="margin-bottom: 8px;">
- <button id="startReload" style="padding: 5px 10px;">Start</button>
- <button id="stopReload" style="padding: 5px 10px;">Stop</button>
- </div>
- <div id="reloadStatus" style="font-size: 12px;">Status: ${isReloadingEnabled ? 'Running' : 'Stopped'}</div>
- `;
- document.body.appendChild(reloadUI);
- // Pause logic on hover
- reloadUI.addEventListener('mouseenter', function() {
- if (intervalId !== null && isScriptRunning) { // Only pause if it's currently running
- clearInterval(intervalId);
- intervalId = null;
- wasPaused = true; // Mark as paused due to hover
- updateStatus('Paused (mouse on UI)');
- }
- });
- // Unpause logic
- reloadUI.addEventListener('mouseleave', function() {
- if (wasPaused && isScriptRunning) { // Only unpause if it was paused due to hover and the script was running before
- const interval = Math.max(1, parseInt(document.getElementById('reloadInterval').value, 10)) * 1000;
- startReloading(interval);
- wasPaused = false; // Reset pause state
- }
- });
- // Start/Stop buttons
- const startButton = document.getElementById('startReload');
- const stopButton = document.getElementById('stopReload');
- const intervalInput = document.getElementById('reloadInterval');
- startButton.onclick = function() {
- const interval = Math.max(1, parseInt(intervalInput.value, 10)) * 1000;
- localStorage.setItem('autoReloadInterval', interval);
- localStorage.setItem('isReloadingEnabled', 'true');
- isReloadingEnabled = true; // Update the running state
- startReloading(interval);
- };
- stopButton.onclick = function() {
- localStorage.setItem('isReloadingEnabled', 'false');
- isReloadingEnabled = false; // Ensure the script is marked as not running
- stopReloading();
- };
- // Automatically start reloading if enabled
- if (isReloadingEnabled) {
- startReloading(savedInterval);
- }
- })();