油猴脚本-自动刷新网页

news/2025/9/29 11:08:38/文章来源:https://www.cnblogs.com/agfox123/p/19118349
// ==UserScript==
// @name         Userscript_reload
// @namespace    http://tampermonkey.net/
// @version      2025-09-29
// @description  每x分钟自动刷新当前页面,可手动暂停/继续,支持窗口拖动
// @author       You
// @match        https://www.baidu.com/*
// @grant        none
// ==/UserScript==(function() {'use strict';// 刷新间隔:x分钟 +(1--10)随机秒const REFRESH_INTERVAL =(5*60+Math.floor(Math.random() * 11))*1000;let timer = null;let remainingTime = REFRESH_INTERVAL;let isRunning = true;let isDragging = false;let offsetX, offsetY;// 创建控制界面function createControlPanel() {const panel = document.createElement('div');panel.id = 'autoRefreshPanel';panel.style.position = 'fixed';panel.style.bottom = '20px';panel.style.right = '20px';panel.style.backgroundColor = 'rgba(0,0,0,0.7)';panel.style.color = 'white';panel.style.padding = '10px 15px';panel.style.borderRadius = '5px';panel.style.zIndex = '999999';panel.style.fontFamily = 'Arial, sans-serif';panel.style.fontSize = '14px';panel.style.cursor = 'move'; // 提示可拖动// 添加标题栏(可拖动区域)const header = document.createElement('div');header.style.marginBottom = '8px';header.style.fontWeight = 'bold';header.style.userSelect = 'none'; // 防止拖动时选中文本header.textContent = '自动刷新控制';// 状态显示const statusDiv = document.createElement('div');statusDiv.id = 'autoRefreshStatus';statusDiv.textContent = `自动刷新: 启用 (剩余: ${formatTime(remainingTime)})`;statusDiv.style.marginBottom = '8px';statusDiv.style.cursor = 'default'; // 状态区恢复默认光标// 控制按钮const toggleBtn = document.createElement('button');toggleBtn.textContent = '暂停';toggleBtn.style.marginLeft = '10px';toggleBtn.style.padding = '3px 8px';toggleBtn.style.cursor = 'pointer';toggleBtn.style.border = 'none';toggleBtn.style.borderRadius = '3px';toggleBtn.style.backgroundColor = '#ff4444';toggleBtn.style.color = 'white';toggleBtn.style.cursor = 'default'; // 按钮恢复默认光标toggleBtn.addEventListener('click', toggleRefresh);// 组装面板panel.appendChild(header);panel.appendChild(statusDiv);panel.appendChild(toggleBtn);document.body.appendChild(panel);// 添加拖动事件监听addDragEvents(panel);}// 添加拖动功能function addDragEvents(element) {// 鼠标按下时开始拖动element.addEventListener('mousedown', (e) => {// 只有点击标题栏才允许拖动if (e.target === element || e.target === element.firstChild) {isDragging = true;// 计算鼠标相对于面板的位置const rect = element.getBoundingClientRect();offsetX = e.clientX - rect.left;offsetY = e.clientY - rect.top;element.style.transition = 'none'; // 关闭动画使拖动更流畅}});// 鼠标移动时更新面板位置document.addEventListener('mousemove', (e) => {if (!isDragging) return;const panel = document.getElementById('autoRefreshPanel');// 计算新位置(确保面板不会超出视口)const newX = e.clientX - offsetX;const newY = e.clientY - offsetY;// 限制在窗口内const maxX = window.innerWidth - panel.offsetWidth;const maxY = window.innerHeight - panel.offsetHeight;const constrainedX = Math.max(0, Math.min(newX, maxX));const constrainedY = Math.max(0, Math.min(newY, maxY));// 设置新位置panel.style.left = `${constrainedX}px`;panel.style.top = `${constrainedY}px`;// 清除原来的bottom和right属性,改用left和toppanel.style.bottom = 'auto';panel.style.right = 'auto';});// 鼠标释放时停止拖动document.addEventListener('mouseup', () => {if (isDragging) {isDragging = false;const panel = document.getElementById('autoRefreshPanel');panel.style.transition = 'all 0.1s ease'; // 恢复轻微动画}});// 鼠标离开窗口时停止拖动document.addEventListener('mouseleave', () => {isDragging = false;const panel = document.getElementById('autoRefreshPanel');panel.style.transition = 'all 0.1s ease';});}// 格式化时间显示 (毫秒 -> 分:秒)function formatTime(ms) {const totalSeconds = Math.floor(ms / 1000);const minutes = Math.floor(totalSeconds / 60);const seconds = totalSeconds % 60;return `${minutes}:${seconds.toString().padStart(2, '0')}`;}// 更新倒计时显示function updateDisplay() {const statusDiv = document.getElementById('autoRefreshStatus');if (statusDiv) {statusDiv.textContent = `自动刷新: ${isRunning ? '启用' : '暂停'} (剩余: ${formatTime(remainingTime)})`;}}// 切换刷新状态 (暂停/继续)function toggleRefresh() {isRunning = !isRunning;const btn = document.querySelector('#autoRefreshPanel button');if (isRunning) {btn.textContent = '暂停';btn.style.backgroundColor = '#ff4444';startTimer();} else {btn.textContent = '继续';btn.style.backgroundColor = '#00C851';clearInterval(timer);}updateDisplay();}// 开始倒计时function startTimer() {clearInterval(timer);timer = setInterval(() => {if (isRunning) {remainingTime -= 1000;updateDisplay();if (remainingTime <= 0) {// 刷新页面location.reload();}}}, 1000);}// 初始化createControlPanel();startTimer();// 页面卸载时清除定时器window.addEventListener('beforeunload', () => {clearInterval(timer);});
})();

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PostgreSQL数据库查询表是否被锁,以及解锁表的办法

问题现象: (1)、CDM任务执行时报错:org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.2025-09-29 10:22:19.663|INFO |cdm-job-submit-pool24|[o.a.s.c.jdbc.GenericJdbcE…

用信号量机制实现互斥,同步,前驱

实现进程互斥 1.分析并发进程的关键活动,划定临界区(如:对临界资源打印机的访问) 2.设置互斥信号量mutex,初始值为1 (mutex n.互斥) 3.进入区P(mutex)--申请资源 4.退出区V(mutex)--释放资源 注意: 对于不同的临…

详细介绍:HDFS和MapReduce——Hadoop的两大核心技

详细介绍:HDFS和MapReduce——Hadoop的两大核心技pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

同城分类网站建设怎么免费查企业电话

简述 RT-Thread的构建与配置系统由以下几个部分组成&#xff1a; KConfig&#xff1a;kernel config配置文件&#xff08;提供系统的配置裁剪功能&#xff09;SCons&#xff1a;构建工具env工具&#xff1a;主要提供构建系统所需的各种环境变量以及软件包的管理 Kconfig在R…

AxC杂题乱做

\(\operatorname{Update\;on\;2025.9.26}\) ABC422F dp题。 考虑费用提前计算,设 \(f_{i,j}\) 表示当前在点 \(i\),还需要走 \(j\) 步的最小花费。 \[f_{v,j}\gets f_{u,j+1}+j\times w_v,\exist (u,v) \]复杂度 \(O…

Apache Hive 如何在大内容中发挥能量

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【AI 哲学思考】从大模型演进到生命隐喻:个性、极限与先天后天之问

【AI 哲学思考】从大模型演进到生命隐喻:个性、极限与先天后天之问从大模型演进到生命隐喻:个性、极限与先天后天之问当下对 AI 大模型的优化,无论是微调以适配特定场景,还是对齐人类价值观,几乎都离不开一个前提…

【AI 哲学思考】记忆的形态:从人脑到 AI 的存储之问

【AI 哲学思考】记忆的形态:从人脑到 AI 的存储之问记忆的形态:从人脑到 AI 的存储之问人脑的记忆究竟能清晰到何种程度?我们能一字不差地背诵多少内容?显然,这份 “零误差记忆容量” 必然存在一个上限 —— 就像…

广州万户网站公司wordpress英文美食主题

前言 计划是这样的&#xff1a;当有人使用你不理解的特性时&#xff0c;直接开枪打死他们。这比学习新东西要容易得多&#xff0c;不久之后&#xff0c;活下来的程序员只会用一个容易理解的、微小的 Python 0.9.6 子集来编写代码 。 Tim Peters&#xff0c;传奇的核心开发者&am…

ISP DMA TEST

定义理解 Camera ISP 场景 Camera ISP 场景下在 ISP → Memory 的数据流里:ISP 内部有 DMA 引擎(通常叫 ISP output DMA / Write DMA)。 ISP 出一帧时,数据通过 内部 DMA 硬件写入内存。 一帧传完,ISP 会产生“fr…

基于遗传优化的SVM织物瑕疵类型识别matlab仿真 - 实践

基于遗传优化的SVM织物瑕疵类型识别matlab仿真 - 实践2025-09-29 10:56 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; di…

完整教程:大模型agent综述:A Survey on Large Language Model based Autonomous Agents

完整教程:大模型agent综述:A Survey on Large Language Model based Autonomous Agentspre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importan…

三脚电感在报警器芯片里的实际作用与用法

由芯片上的声音输出端,通过1K电阻,接到三极管基极脚,再通过集电极脚接到三脚电感的第3脚,同时接到蜂鸣片。三脚电感的另外二个脚,长的2脚接到电源正极,1脚直接接到蜂鸣片。这样就能提升音量,,可以与不接三脚电…

莆田外贸自建网站国家建设局网站

Github网址&#xff1a;nagadomi/waifu2x&#xff1a;动漫风格艺术的图像超分辨率 (github.com) 该项目主要讲述的是如何利用预训练的深度学习模型来达到无损扩大收缩和去噪&#xff0c;对于一般训练图像的小伙伴应该很清晰图像经常要通过resize操作固定大小&#xff0c;然后c…

音乐网站模板免费源码哔哩哔哩网站4 3比例怎么做

最近呢小誉收到了一位工作十年的学员投稿&#xff0c;这位学员是2011年从誉天学习HCIE课程并顺利拿证&#xff0c;先后在华为等大厂工作。他想把他这十年的工作经验分享给各位学弟学妹们。 这些经验并非来自于具体的技术实现&#xff0c;而是在架构设计和实施过程中所体会到的一…

洛谷题单指南-进阶数论-P5091 【模板】扩展欧拉定理

原题链接:https://www.luogu.com.cn/problem/P5091 题意解读:求ab % m,b超级大。 解题思路: 大数幂取模问题,通常要用到扩展欧拉定理,下面从欧拉函数开始介绍。 1、欧拉函数 定义:小于等于n的正整数中与n互质的…

jenkins maven nacos springboot profile实现多环境配置

在 Jenkins 构建 Spring Boot 项目时,结合 Maven、Nacos 和 Profile 可以实现多环境(开发、测试、生产)的自动化部署与配置管理。以下是四者的协同工作方式及具体实现步骤: 核心概念与关系Spring Boot Profile:用…

RAG is really dead? 大模型和知识之间的桥梁没了? - spader

作者:SpaderMan 从 RAG 到上下文工程:理性思考 AI 应用开发,以交付业务结果为目标 最近,Latent Space 播客发布了一期标题为["RAG 已死,上下文工程为王"](https://www.latent.space/p/chroma "&qu…

.NET操作Excel:高效材料读写与批量运行

.NET操作Excel:高效材料读写与批量运行pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

【深度解析】从零构建体育数据流水线:足球与篮球数据接入实战

【深度解析】从零构建体育数据流水线:足球与篮球数据接入实战不止于兴趣,更是技术实践 作为一名开发者兼体育爱好者,我始终对数据驱动体育的世界着迷。但不同于普通观众,我们更关心的是:这些数据如何通过技术手段…