Skip to content

DeanWanghewei/link-timer-chrome-extensions

Repository files navigation

Link Timer - 链接定时器

一个智能的 Chrome 浏览器扩展,帮助您管理和定时访问重要的网页链接

Chrome Extension Version License Manifest V3


简介

Link Timer 是一个基于 Chrome Extension Manifest V3 开发的浏览器扩展,专为需要定时访问特定网页的用户设计。无论是每日必看的新闻网站、定期检查的工作平台、需要定时打开的在线工具,还是需要自动签到的服务,Link Timer 都能帮您自动化这些重复性操作。

核心功能

🕐 智能定时打开

  • 灵活的时间设置 - 精确到分钟的定时控制
  • 一次性/重复任务 - 支持单次执行或每日自动重复
  • 桌面通知提醒 - 确保您不会错过任何重要链接
  • 自动关闭标签 - 可选的自动关闭功能,支持自定义延迟时间

🎯 智能自动点击

  • 可视化元素选择 - 在目标页面上直接点击选择需要触发的按钮或元素
  • 智能选择器生成 - 自动生成稳定的元素选择器(ID优先、类名、属性等多种策略)
  • 灵活的执行配置 - 支持自定义点击延迟和最大等待时间
  • 智能错误处理 - 6种错误类型的精准识别和用户友好的通知
  • 失败重试机制 - 连续失败自动禁用,防止无效重试
  • 详细的执行日志 - 记录每次点击状态、失败次数和错误原因

🔗 便捷链接管理

  • 右键快速添加 - 在任何网页上右键点击链接即可添加
  • 完整管理界面 - 支持增删改查等全方位操作
  • 智能搜索 - 快速定位目标链接
  • 分组整理 - 按类别组织和管理链接
  • 导入导出 - 轻松备份和迁移配置数据

⚙️ 用户友好体验

  • 简洁直观的界面 - 清晰的视觉设计,易于上手
  • 快速访问弹窗 - 点击扩展图标即可快速添加链接
  • 完整选项页面 - 集中管理所有链接和设置
  • 智能信息填充 - 自动获取链接标题,减少手动输入

快速开始

📦 安装方式

方法一:从 Release 安装(推荐)

  1. 访问 Release 页面 下载最新版本
  2. 打开 Chrome 浏览器,访问 chrome://extensions/
  3. 开启右上角的 开发者模式
  4. 将下载的 link-timer.zip 文件直接拖入浏览器窗口

方法二:开发者模式安装

# 克隆项目
git clone https://github.com/yourusername/link-timer-chrome-extensions.git
cd link-timer-chrome-extensions
  1. 打开 Chrome 浏览器,访问 chrome://extensions/
  2. 开启右上角的 开发者模式
  3. 点击 加载已解压的扩展程序
  4. 选择项目文件夹

使用指南

🎯 添加定时链接

方式一:右键菜单添加

  1. 在任何网页中找到目标链接
  2. 右键点击链接 → 选择 "添加到定时链接管理器"
  3. 设置打开时间、重复选项等参数
  4. 点击 保存配置

方式二:扩展弹窗添加

  1. 点击浏览器工具栏中的 Link Timer 图标
  2. 在弹窗中输入链接信息
  3. 配置定时参数后保存

📋 管理链接

  1. 点击扩展图标 → 管理所有链接 进入管理页面
  2. 在管理界面可以:
    • ✏️ 编辑链接信息和定时设置
    • 🗑️ 删除不需要的链接
    • 🔍 搜索特定链接
    • 📁 使用分组功能整理链接
    • 💾 导入/导出配置进行备份

⏱️ 自动关闭标签页

  1. 添加或编辑链接时,勾选 "自动关闭" 选项
  2. 设置延迟时间(默认 5 秒)
  3. 链接打开后将在指定时间后自动关闭

🎯 配置自动点击

自动点击功能可以在链接打开后自动触发页面上的按钮或元素(例如:自动点击"签到"按钮、"提交"按钮等)。

配置步骤

  1. 在添加或编辑链接时,勾选 "启用自动点击" 选项
  2. 点击 "配置点击元素" 按钮
  3. 系统会打开目标页面,并进入元素选择模式:
    • 页面顶部会显示紫色横幅提示
    • 鼠标移动时,可点击元素会自动高亮(绿色边框)
    • 点击需要自动触发的元素即可完成选择
    • 按 ESC 键或点击"取消选择"退出
  4. 配置点击延迟时间(默认 2 秒):页面加载后等待多久再点击
  5. 配置最大等待时间(默认 10 秒):等待元素出现的最长时间
  6. 保存配置

高级提示

  • 元素识别优先级:系统会优先识别 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 分钟。

定时任务没有触发怎么办?
  1. 确保已开启"自动定时"选项
  2. 检查系统通知权限是否已授予
  3. 确认 Chrome 浏览器在后台运行
如何备份我的链接数据?

在管理页面点击"导出配置"按钮,将配置保存为 JSON 文件。需要恢复时使用"导入配置"功能。

扩展图标不显示怎么办?

确保 icons/ 目录中的图标文件存在且格式正确。如果问题持续,尝试重新加载扩展。

自动点击支持哪些类型的元素?

支持所有可点击的元素,包括:

  • 按钮(button、input[type="button/submit"])
  • 链接(a 标签)
  • 具有 role="button" 的元素
  • 具有 onclick 事件的元素
  • cursor: pointer 的元素

系统会智能识别并优先选择真正可点击的父元素。

可以在特殊页面(chrome:// 等)使用自动点击吗?

不可以。Chrome 的安全限制禁止扩展在以下页面注入脚本:

  • chrome:// 页面
  • chrome-extension:// 页面
  • edge:// 页面(Edge 浏览器)
  • about: 页面

如果尝试在这些页面使用自动点击,会收到权限限制的通知。

更新日志

🎉 v1.8.1 (2025-11-20)

✨ 新增功能

  • 修复按钮点击不操作稳定问题.
  • 按钮点击的配置需要重新配置按钮.

🎉 v1.8.0 (2025-11-18)

✨ 新增功能

  • 添加暗黑模式
  • 修复不定时打开的问题.
  • 修改配置页面,添加下次打开时间显示

🎉 v1.7.0 (2025-11-17)

✨ 新增功能

  • 📡 REST 请求功能 - 链接打开后自动发送 HTTP 请求到指定 API
    • 支持 POST 请求,可自定义 URL、Headers、Body
    • 变量替换系统:支持 {url}、{title}、{timestamp}、{date}、{time}、{domain} 等变量
    • localStorage 变量支持:使用 {localStorage.变量名} 从页面读取认证信息
    • Cookie 支持:可自动获取并发送页面 Cookie
    • 失败自动重试:支持配置重试次数和延迟(线性退避)
    • 智能错误通知:请求失败时发送桌面通知
    • 测试功能:保存前可测试 API 是否正常工作
    • 状态追踪:记录每次请求的状态、耗时、响应预览

🎨 优化改进

  • 新增权限:cookies 支持获取页面 Cookie
  • 优化时序控制:REST 请求在自动点击后执行
  • 完善配置界面:简洁的表单设计,支持高级选项折叠

📝 使用场景

  • 定时签到后调用签到 API 记录
  • 打开页面后向自己的服务器发送通知
  • 自动化数据采集和上报

💡 localStorage 变量使用示例

很多网站将认证 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"
}

工作原理

  1. 扩展会自动打开目标页面(后台标签页)
  2. 从页面的 localStorage 读取指定的变量
  3. 替换 headers 中的 {localStorage.xxx} 占位符
  4. 发送带有真实 Token 的请求

如何找到 localStorage 变量名

  1. 打开目标网站并登录
  2. 按 F12 打开开发者工具
  3. 切换到 Console 标签
  4. 输入 localStorage 并回车
  5. 查看存储的所有变量名和值
  6. 找到包含 Token 的变量名(如 tokenaccessTokenauthToken 等)

🎉 v1.6.0 (2025-11-14)

✨ 新增功能

  • 🎯 自动点击功能 - 链接打开后自动点击指定的页面元素
    • 可视化元素选择器:在目标页面上直接选择要点击的按钮
    • 智能选择器生成:支持 ID、类名、属性、路径等多种策略
    • 灵活配置:可自定义点击延迟(默认 2 秒)和最大等待时间(默认 10 秒)
    • 元素智能识别:自动向上查找可点击的父元素(button、a 等)
  • ⚠️ 智能错误处理系统 - 6 种错误类型的精准识别和通知
    • 元素未找到、元素不可点击、页面加载超时、权限限制等
    • 失败自动禁用机制:连续失败 3 次后自动禁用(可配置)
    • 详细的错误日志和状态追踪
  • 🔧 Content Script - 新增 content.js 用于页面级操作

🎨 优化改进

  • 自动关闭延迟计算:考虑自动点击的延迟时间,避免过早关闭
  • 新增权限:scriptingactiveTabhost_permissions 支持脚本注入
  • 右键菜单版本更新为 1.6.0

🐛 Bug 修复

  • 修复了部分格式问题和代码规范

🎉 v1.5.1 (2025-10-19)

  • 🐛 修复 每天重复任务指数级增长的严重 BUG
  • 🐛 修复 彻底解决链接重复打开问题
  • 优化 将 Alarm 开关名称改为"自动定时",更加直观

🚀 v1.4.0 (2025-09-28)

  • 新增 链接自动关闭选项,支持自定义延迟时间
  • 新增 分组管理功能,支持按组分类链接
  • 新增 导入导出配置功能,方便数据备份和迁移
  • 🎨 优化 链接打开逻辑,支持自动关闭标签页
  • 🎨 优化 添加分组建议和自动补全功能
  • 🎨 改进 链接列表展示,按分组和时间排序
  • 📝 更新 上下文菜单标题和版本号

🎊 v1.0.0 (2025-09-22)

  • 🎉 初始版本发布
  • ✨ 实现基本的链接定时打开功能
  • ✨ 支持一次性打开和每日重复打开
  • ✨ 提供完整的链接管理界面

贡献指南

欢迎参与 Link Timer 的开发和改进!

如何贡献

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

报告问题

如果您发现 Bug 或有功能建议,请在 Issues 页面提交。

许可证

本项目采用 MIT 许可证。详情请查看 LICENSE 文件。

联系方式


如果这个项目对您有帮助,请给个 ⭐️ Star 支持一下!

Made with ❤️ by Link Timer Team

About

浏览器插件.配置定时打开某个页面

Resources

Stars

5 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors