这是一个轻量级的、纯静态的 Web 工具,用于管理、编辑和生成浏览器书签脚本 (Bookmarklet)。可代替部分油猴功能。它内置了多种实用的开发和浏览辅助脚本,并支持动态加载和扩展。
- 书签生成器: 将 JavaScript 代码一键转换为 Bookmarklet 格式,方便拖拽到浏览器书签栏。
- 丰富的预设库: 内置了视频下载、解除限制、开发调试、内容提取等多种分类的实用脚本。
- 纯静态架构: 无需后端服务器,完全基于 HTML/CSS/JS,可直接部署在任何静态托管服务上。
- 易于扩展: 脚本配置与核心代码分离,通过 JSON 文件管理。
- 油猴脚本转换: 附带 CLI 工具,可将 Tampermonkey/Violentmonkey 脚本转换为可在普通浏览器书签中运行的格式。
ScriptExecutor/
├── index.html # 主程序入口
├── scripts/ # 脚本数据目录
│ ├── index.json # 脚本索引文件
│ └── *.json # 具体的脚本配置文件
├── tools/ # 脚本导入/转换工具 (CLI)
│ ├── add_script.py # Python 版工具
│ ├── add_script.js # Node.js 版工具
│ └── add_script.ps1 # PowerShell 版工具
└── README.md # 项目说明文档
我们提供了命令行工具,用于将普通的 JS 文件或油猴脚本 (UserScript) 自动转换为本项目可用的 JSON 格式预设。
- 自动解析: 识别油猴脚本的 Metadata (
@name,@match,@require等)。 - 兼容性垫片 (Shim): 自动注入
GM_getValue,GM_xmlhttpRequest等 API 的模拟实现,使脚本能在无扩展环境下运行。 - 多语言支持: 提供 Python, Node.js, PowerShell 三种版本,任选其一。
| 特性 | 本工具 (Bookmarklet) | 油猴插件 (Extension) |
|---|---|---|
| 安装方式 | 拖拽到书签栏 (免安装) | 需要安装浏览器扩展 |
| 运行方式 | 手动点击 触发 | 页面加载时 自动运行 |
| 权限要求 | 仅当前页面权限 | 需授予扩展广泛权限 |
| 移动端支持 | 支持 (iOS Safari, Android Chrome) | 仅部分支持扩展的浏览器 (如 Kiwi) |
| 跨域请求 | 受限于浏览器 CORS 策略 | 支持跨域 (GM_xmlhttpRequest) |
| 适用场景 | 临时工具、特定页面操作、受限环境 | 全局美化、去广告、长期自动化任务 |
总结: 本工具适合那些不需要时刻运行、希望随用随点、或者在无法安装扩展的环境(如公司电脑、手机浏览器)下使用的场景。
假设你有一个名为 test_script.js 的油猴脚本:
# 1. 进入工具目录
cd tools
# 2. 运行工具 (以 Python 为例)
python add_script.py
# 3. 按提示输入文件路径和信息
# 请输入脚本文件路径: test_script.js
# ... (输入名称、分类等)
# 4. 获取输出
# 工具会在控制台打印出 JSON 内容和 index.json 的配置条目输出示例:
// 脚本 JSON 内容
{
"category": "分类",
"name": "预设名",
"desc": "功能描述",
"icon": "📜",
"value": [
"(function(){var unsafeWindow=window;...",
"try{(function(){ ... })();}catch(e){...}",
"})();"
]
}你需要做的是:
- 在
scripts/目录下创建一个新文件(例如DEV_My_Script.json),将生成的 JSON 内容粘贴进去。 - 打开
scripts/index.json,将生成的配置条目粘贴到数组中。 - 刷新调试网页,即可看到新脚本。
本项目是纯静态的,非常适合部署到 Cloudflare Pages、GitHub Pages 或 Vercel。
- 将本项目代码提交到 GitHub 或 GitLab 仓库。
- 亦可以选择Dashbord上传项目代码。(./tools文件夹非必须)
- 登录 Cloudflare Dashboard,进入 Workers & Pages -> Create application -> Pages -> Connect to Git。
- 选择你的仓库。
- 构建配置 (Build settings):
- Project Name: 自定义
- Framework preset:
None(或者不选) - Build command:
(留空)(不需要构建命令) - Build output directory:
(留空)(或者填.,表示根目录) - 注意:如果你将
ScriptExecutor作为仓库的一个子目录,请在 "Root directory" 设置中填入ScriptExecutor。
- 点击 Save and Deploy。
部署完成后,你将获得一个 *.pages.dev 的域名,即可访问你的脚本助手。