Link Timer 是一个基于 Chrome Extension Manifest V3 开发的浏览器扩展,专为需要定时访问特定网页的用户设计。无论是每日必看的新闻网站、定期检查的工作平台、需要定时打开的在线工具,还是需要自动签到的服务,Link Timer 都能帮您自动化这些重复性操作。
- 灵活的时间设置 - 精确到分钟的定时控制
- 一次性/重复任务 - 支持单次执行或每日自动重复
- 桌面通知提醒 - 确保您不会错过任何重要链接
- 自动关闭标签 - 可选的自动关闭功能,支持自定义延迟时间
- 可视化元素选择 - 在目标页面上直接点击选择需要触发的按钮或元素
- 智能选择器生成 - 自动生成稳定的元素选择器(ID优先、类名、属性等多种策略)
- 灵活的执行配置 - 支持自定义点击延迟和最大等待时间
- 智能错误处理 - 6种错误类型的精准识别和用户友好的通知
- 失败重试机制 - 连续失败自动禁用,防止无效重试
- 详细的执行日志 - 记录每次点击状态、失败次数和错误原因
- 右键快速添加 - 在任何网页上右键点击链接即可添加
- 完整管理界面 - 支持增删改查等全方位操作
- 智能搜索 - 快速定位目标链接
- 分组整理 - 按类别组织和管理链接
- 导入导出 - 轻松备份和迁移配置数据
- 简洁直观的界面 - 清晰的视觉设计,易于上手
- 快速访问弹窗 - 点击扩展图标即可快速添加链接
- 完整选项页面 - 集中管理所有链接和设置
- 智能信息填充 - 自动获取链接标题,减少手动输入
- 访问 Release 页面 下载最新版本
- 打开 Chrome 浏览器,访问
chrome://extensions/ - 开启右上角的 开发者模式
- 将下载的
link-timer.zip文件直接拖入浏览器窗口
# 克隆项目
git clone https://github.com/yourusername/link-timer-chrome-extensions.git
cd link-timer-chrome-extensions- 打开 Chrome 浏览器,访问
chrome://extensions/ - 开启右上角的 开发者模式
- 点击 加载已解压的扩展程序
- 选择项目文件夹
方式一:右键菜单添加
- 在任何网页中找到目标链接
- 右键点击链接 → 选择 "添加到定时链接管理器"
- 设置打开时间、重复选项等参数
- 点击 保存配置
方式二:扩展弹窗添加
- 点击浏览器工具栏中的 Link Timer 图标
- 在弹窗中输入链接信息
- 配置定时参数后保存
- 点击扩展图标 → 管理所有链接 进入管理页面
- 在管理界面可以:
- ✏️ 编辑链接信息和定时设置
- 🗑️ 删除不需要的链接
- 🔍 搜索特定链接
- 📁 使用分组功能整理链接
- 💾 导入/导出配置进行备份
- 添加或编辑链接时,勾选 "自动关闭" 选项
- 设置延迟时间(默认 5 秒)
- 链接打开后将在指定时间后自动关闭
自动点击功能可以在链接打开后自动触发页面上的按钮或元素(例如:自动点击"签到"按钮、"提交"按钮等)。
配置步骤:
- 在添加或编辑链接时,勾选 "启用自动点击" 选项
- 点击 "配置点击元素" 按钮
- 系统会打开目标页面,并进入元素选择模式:
- 页面顶部会显示紫色横幅提示
- 鼠标移动时,可点击元素会自动高亮(绿色边框)
- 点击需要自动触发的元素即可完成选择
- 按 ESC 键或点击"取消选择"退出
- 配置点击延迟时间(默认 2 秒):页面加载后等待多久再点击
- 配置最大等待时间(默认 10 秒):等待元素出现的最长时间
- 保存配置
高级提示:
- 元素识别优先级:系统会优先识别 button、a 等可点击元素,避免误选文本
- 选择器稳定性:系统会自动生成最稳定的选择器(优先使用 ID,其次类名、属性等)
- 错误处理:如果连续失败 3 次,系统会自动禁用该链接的自动点击功能
- 失败通知:点击失败时会收到桌面通知,可选择重新配置或禁用
- 页面更新:如果目标页面改版,可能需要重新配置元素选择器
常见问题:
为什么点击失败?
可能的原因:
- 元素在页面加载时未立即出现(建议增加点击延迟)
- 页面结构发生了变化(需要重新配置选择器)
- 元素被其他元素遮挡或禁用
- 页面使用了 iframe(当前暂不支持)
系统会在通知中详细说明失败原因。
如何查看点击状态?
在管理页面的链接列表中,启用了自动点击的链接会显示:
- ✅ 上次点击成功
⚠️ 自动点击失败 (失败次数)- 🎯 自动点击已启用
点击详情会显示选择器、延迟时间、错误信息等。
| 技术 | 说明 |
|---|---|
| Chrome Extension Manifest V3 | 使用最新的 Chrome 扩展 API 标准 |
| Storage API | 本地存储链接数据和配置 |
| Alarms API | 精确的定时任务调度 |
| Notifications API | 桌面通知提醒 |
| Context Menus API | 右键菜单集成 |
| Tabs API | 标签页管理和自动关闭 |
link-timer-chrome-extensions/
├── background.js # Service Worker - 核心业务逻辑和定时任务
├── content.js # Content Script - 页面元素选择和自动点击执行
├── popup.html/js # 扩展弹窗 - 快速添加界面
├── options.html/js # 选项页面 - 完整管理界面
├── manifest.json # 扩展配置文件
└── icons/ # 扩展图标资源
| 权限 | 用途 |
|---|---|
contextMenus |
创建右键菜单项 |
storage |
存储链接数据和用户配置 |
alarms |
设置和管理定时任务 |
notifications |
显示桌面通知(定时提醒和错误通知) |
tabs |
管理浏览器标签页(打开链接、自动关闭) |
scripting |
注入 content script 以执行自动点击 |
activeTab |
访问当前活动标签页 |
host_permissions |
访问所有网站以执行自动点击(仅在需要时) |
- 使用现代 JavaScript (ES6+)
- 遵循 Chrome Extension Manifest V3 规范
- 采用模块化设计思想
- 注重代码可读性和可维护性
# 克隆项目
git clone https://github.com/yourusername/link-timer-chrome-extensions.git
cd link-timer-chrome-extensions
# 在 Chrome 中加载扩展
# 1. 打开 chrome://extensions/
# 2. 开启开发者模式
# 3. 点击"加载已解压的扩展程序"
# 4. 选择项目目录如何修改默认打开时间?
在添加或编辑链接时,可以自定义打开时间。默认时间为当前时间加 2 分钟。
定时任务没有触发怎么办?
- 确保已开启"自动定时"选项
- 检查系统通知权限是否已授予
- 确认 Chrome 浏览器在后台运行
如何备份我的链接数据?
在管理页面点击"导出配置"按钮,将配置保存为 JSON 文件。需要恢复时使用"导入配置"功能。
扩展图标不显示怎么办?
确保 icons/ 目录中的图标文件存在且格式正确。如果问题持续,尝试重新加载扩展。
自动点击支持哪些类型的元素?
支持所有可点击的元素,包括:
- 按钮(button、input[type="button/submit"])
- 链接(a 标签)
- 具有 role="button" 的元素
- 具有 onclick 事件的元素
- cursor: pointer 的元素
系统会智能识别并优先选择真正可点击的父元素。
可以在特殊页面(chrome:// 等)使用自动点击吗?
不可以。Chrome 的安全限制禁止扩展在以下页面注入脚本:
- chrome:// 页面
- chrome-extension:// 页面
- edge:// 页面(Edge 浏览器)
- about: 页面
如果尝试在这些页面使用自动点击,会收到权限限制的通知。
- 修复按钮点击不操作稳定问题.
- 按钮点击的配置需要重新配置按钮.
- 添加暗黑模式
- 修复不定时打开的问题.
- 修改配置页面,添加下次打开时间显示
- 📡 REST 请求功能 - 链接打开后自动发送 HTTP 请求到指定 API
- 支持 POST 请求,可自定义 URL、Headers、Body
- 变量替换系统:支持 {url}、{title}、{timestamp}、{date}、{time}、{domain} 等变量
- localStorage 变量支持:使用
{localStorage.变量名}从页面读取认证信息 - Cookie 支持:可自动获取并发送页面 Cookie
- 失败自动重试:支持配置重试次数和延迟(线性退避)
- 智能错误通知:请求失败时发送桌面通知
- 测试功能:保存前可测试 API 是否正常工作
- 状态追踪:记录每次请求的状态、耗时、响应预览
- 新增权限:
cookies支持获取页面 Cookie - 优化时序控制:REST 请求在自动点击后执行
- 完善配置界面:简洁的表单设计,支持高级选项折叠
- 定时签到后调用签到 API 记录
- 打开页面后向自己的服务器发送通知
- 自动化数据采集和上报
很多网站将认证 Token 存储在 localStorage 中,现在可以直接读取使用:
示例 1:使用 localStorage 中的 token
{
"Authorization": "Bearer {localStorage.token}",
"Content-Type": "application/json"
}示例 2:使用多个 localStorage 变量
{
"Authorization": "{localStorage.authType} {localStorage.accessToken}",
"X-User-ID": "{localStorage.userId}",
"Content-Type": "application/json"
}工作原理:
- 扩展会自动打开目标页面(后台标签页)
- 从页面的 localStorage 读取指定的变量
- 替换 headers 中的
{localStorage.xxx}占位符 - 发送带有真实 Token 的请求
如何找到 localStorage 变量名:
- 打开目标网站并登录
- 按 F12 打开开发者工具
- 切换到 Console 标签
- 输入
localStorage并回车 - 查看存储的所有变量名和值
- 找到包含 Token 的变量名(如
token、accessToken、authToken等)
- 🎯 自动点击功能 - 链接打开后自动点击指定的页面元素
- 可视化元素选择器:在目标页面上直接选择要点击的按钮
- 智能选择器生成:支持 ID、类名、属性、路径等多种策略
- 灵活配置:可自定义点击延迟(默认 2 秒)和最大等待时间(默认 10 秒)
- 元素智能识别:自动向上查找可点击的父元素(button、a 等)
⚠️ 智能错误处理系统 - 6 种错误类型的精准识别和通知- 元素未找到、元素不可点击、页面加载超时、权限限制等
- 失败自动禁用机制:连续失败 3 次后自动禁用(可配置)
- 详细的错误日志和状态追踪
- 🔧 Content Script - 新增 content.js 用于页面级操作
- 自动关闭延迟计算:考虑自动点击的延迟时间,避免过早关闭
- 新增权限:
scripting、activeTab、host_permissions支持脚本注入 - 右键菜单版本更新为 1.6.0
- 修复了部分格式问题和代码规范
- 🐛 修复 每天重复任务指数级增长的严重 BUG
- 🐛 修复 彻底解决链接重复打开问题
- ✨ 优化 将 Alarm 开关名称改为"自动定时",更加直观
- ✨ 新增 链接自动关闭选项,支持自定义延迟时间
- ✨ 新增 分组管理功能,支持按组分类链接
- ✨ 新增 导入导出配置功能,方便数据备份和迁移
- 🎨 优化 链接打开逻辑,支持自动关闭标签页
- 🎨 优化 添加分组建议和自动补全功能
- 🎨 改进 链接列表展示,按分组和时间排序
- 📝 更新 上下文菜单标题和版本号
- 🎉 初始版本发布
- ✨ 实现基本的链接定时打开功能
- ✨ 支持一次性打开和每日重复打开
- ✨ 提供完整的链接管理界面
欢迎参与 Link Timer 的开发和改进!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
如果您发现 Bug 或有功能建议,请在 Issues 页面提交。
本项目采用 MIT 许可证。详情请查看 LICENSE 文件。
- 项目主页:GitHub Repository
- 问题反馈:Issues
如果这个项目对您有帮助,请给个 ⭐️ Star 支持一下!
Made with ❤️ by Link Timer Team