网页数据清除与管理脚本 - 详细说明
概述
脚本名称:网页数据清除与管理
版本:3.1
作者:Chaos
适用平台:Tampermonkey / Violentmonkey(支持 GM_* 函数)
匹配范围:所有网站(:///*)
本脚本为您提供一个悬浮对话框,集中管理当前网站的所有客户端数据。您可以一键清除 Cookie、本地存储、会话存储、IndexedDB、缓存存储、Service Worker,以及同源 iframe 中的存储数据。同时支持复制当前站点的 Cookie 和查看详细清理指南。
主要功能
功能按钮 作用
🗑️ 清理当前网站所有数据 一次性执行所有清理操作(Cookie、存储、数据库、缓存、SW、同域框架)
🍪 清理当前网站Cookie 清除当前域名及子域名的 Cookie(无法清除 HttpOnly Cookie)
💾 清理本地存储 清空 localStorage
📝 清理会话存储 清空 sessionStorage
🗄️ 清理IndexedDB 删除当前域名下的所有 IndexedDB 数据库
📦 清理缓存存储 删除与当前域名相关的 Cache Storage
⚙️ 注销Service Worker 注销当前域名下注册的 Service Worker
🖼️ 清理同域框架存储 遍历页面中所有 iframe/frame,若其域名与主站同域,则清空其 localStorage 和 sessionStorage
📋 复制当前Cookie 将当前页面的 Cookie 复制到剪贴板
📖 查看清理指南 弹窗显示详细的数据清理说明(含手动彻底清理步骤)
🌐 切换语言 在简体中文和 English 之间切换(自动保存偏好)
安装方法
- 确保浏览器已安装 Tampermonkey 或 Violentmonkey 扩展。
- 点击扩展图标 → “添加新脚本” 或 “新建用户脚本”。
- 将本脚本的全部代码复制粘贴到编辑器中。
- 保存(Ctrl+S / Cmd+S)。
- 脚本会自动生效。刷新任意网页后,在 Tampermonkey 菜单中会看到 “⚙️ 菜单设置” 选项。
使用方法
打开对话框
· 点击浏览器右上角的 Tampermonkey 图标 → 选择 “⚙️ 菜单设置”。
· 脚本会在页面中央弹出控制面板。
执行清理
· 点击任意功能按钮,脚本会立即执行清理操作,并弹窗提示结果(例如清除了多少项数据)。
· 清理成功后,页面会自动重新加载(仅当实际清除了数据时),以确保所有存储残留被彻底移除。
语言切换
· 在对话框底部点击 “简体中文” 或 “English” 按钮,界面语言会立即切换,且偏好会保存到脚本存储中。
关闭对话框
· 点击 “关闭” 按钮或点击半透明遮罩层,对话框关闭。
清理数据的具体说明
- Cookie
· 清除范围:当前域名的所有可见 Cookie(非 HttpOnly),并尝试使用多种路径(/、/login、/account、/api、/admin)和子域名变体(例如 example.com、.example.com、www.example.com 等)进行覆盖清除。
· 无法清除:设置了 HttpOnly 标志的 Cookie(浏览器安全限制)。
- LocalStorage / SessionStorage
· 直接调用 localStorage.clear() 和 sessionStorage.clear(),清空当前页面的存储。
- IndexedDB
· 调用 indexedDB.databases() 获取所有数据库列表,然后逐一删除。仅删除当前域名下的数据库。
- Cache Storage
· 遍历 caches.keys(),删除名称中包含当前域名(或不含 www. 的域名)的缓存。
- Service Worker
· 调用 navigator.serviceWorker.getRegistrations(),对 scope 包含当前域名的 SW 执行 unregister()。
- 同域 iframe 存储
· 查找所有 <iframe> 和 <frame>,若其 contentWindow.location.hostname 与主站同域(或为子域),则清空其 localStorage 和 sessionStorage。
· 注意:跨域 iframe 无法访问(浏览器安全策略限制)。
注意事项
- HttpOnly Cookie 无法清除
这是浏览器的安全机制,脚本无法通过 JavaScript 删除这类 Cookie。如需彻底清除,请使用浏览器内置的“清除浏览数据”功能。 - 清理后需手动刷新
脚本在成功清理后会自动刷新页面,以确保所有前端状态重新初始化。如果您不希望自动刷新,可修改脚本中 if (reload) location.reload(); 的相关逻辑。 - 跨域数据无法清除
脚本仅能操作当前页面域名及其子域名的数据。第三方嵌入的内容(如来自 google-analytics.com 的 Cookie 或存储)无法通过本脚本清除。 - IndexedDB 和 Cache Storage 的异步清理
脚本已正确处理异步操作,弹窗结果会等待所有清理完成后再显示。 - 浏览器兼容性
建议使用最新版 Chrome、Edge、Firefox。旧版浏览器可能不支持 indexedDB.databases() 方法(脚本会捕获异常并返回 0)。 - 权限要求
脚本使用了以下 Tampermonkey API,请确保扩展允许这些权限:
· GM_registerMenuCommand(注册菜单)
· GM_setClipboard(复制 Cookie)
· GM_getValue / GM_setValue(保存语言偏好)
常见问题 (FAQ)
Q1:点击“清理所有数据”后,为什么有些数据还在?
· 可能是 HttpOnly Cookie 或 跨域存储 未被清除。请参照脚本内置的“查看清理指南”手动清理。
Q2:清理 IndexedDB 时提示“未检测到数据库”,但我明明知道有数据库?
· 某些 IndexedDB 数据库是在 Worker 或延迟初始化的,脚本运行时可能尚未创建。您可以在页面完全加载后再执行清理,或使用浏览器开发者工具(Application → IndexedDB)手动检查。
Q3:复制 Cookie 时弹出“无Cookie可复制”,但网站明明有?
· 您可能处于隐私模式,或 Cookie 被标记为 HttpOnly(不可被 JavaScript 读取)。本脚本只能复制 document.cookie 可访问的 Cookie。
Q4:清理后页面刷新了,但某些功能仍然异常?
· 部分网站使用 Service Worker 拦截请求,即使 SW 被注销,也可能需要强制刷新(Ctrl+Shift+R)来清除内存中的旧响应。脚本已提供“查看清理指南”中的提示。
Q5:如何修改脚本默认语言?
· 在对话框中选择您偏好的语言即可,脚本会自动保存。如果想重置,可进入 Tampermonkey 管理面板 → 存储(Storage)→ 删除 preferred_language 项。
Q6:为什么菜单选项只显示“⚙️ 菜单设置”,而不是直接显示功能?
· 脚本设计为通过对话框集中操作,而非多级菜单,以保持简洁。点击菜单项即可调出对话框。
脚本自定义(高级用户)
您可以根据需要修改以下参数:
· Cookie 清除路径列表:在 cleaners.clearCookies 函数中找到 paths 数组,可增删路径(例如 /home、/app)。
· 子域名匹配规则:getSubdomains 函数会生成所有可能的子域名组合。如果您的网站域名结构特殊,可调整该函数。
· 自动刷新行为:各清理函数中的 reload = true 参数改为 false 可禁止自动刷新。
许可证
本脚本采用 MIT 许可证,您可以自由使用、修改、分发,但需保留原作者声明。
更新日志
v3.1
· 优化对话框样式,支持移动端自适应。
· 增加同域 iframe 存储清理功能。
· 修复 IndexedDB 清理时部分数据库名称为空导致的计数错误。
· 改进 Cookie 清除逻辑,覆盖更多路径和子域名。
v3.0(历史)
· 初始公开发布版本。
文档结束
如有疑问或建议,请联系脚本作者(脚本头部 @author Chaos)。祝您使用愉快!