Greasy Fork is available in English.
优化重构版划词搜索,新增搜索引擎分类管理、拖拽排序、添加/编辑删除等功能
当前为
版本:v5.2
作者:By9527
日期:2026/3/15
本脚本是一个功能强大的划词搜索油猴脚本,支持多搜索引擎、分类管理、拖拽排序、一键搜索等功能。经过多次迭代优化,当前大版本(v5.2)已彻底解决多行拖拽时的光标错位问题,并优化了交互体验。本文档详细记录了从 v4.0 到 v5.2 的功能演进过程、核心问题解决方案以及完整的使用说明。当前版本主体结构已定,以后可能不会有太大的改动了,只有常规维护链接失效及BUG修复等问题,也欢迎各路大佬推荐有用及有意义的搜索引擎。
下表梳理了脚本主要版本的修复与改进,完整记录了功能升级的每一步:
| 版本 | 修复内容 |
|---|---|
| ✅ v4.0 | 初始重构版本,引入分类管理、拖拽排序、全选反选、编辑删除等基础功能。 |
| ✅ v4.1 | 修复点击图标和一键搜索无响应问题;引入 enabled 属性,通过复选框控制引擎显示。 |
| ✅ v4.2 | 优化拖拽定位逻辑;修复存储恢复时 popup 函数丢失的问题。 |
| ✅ v4.3 | 修复齿轮按钮样式(透明背景、大图标);将全选/反选按钮移入底部按钮组。 |
| ✅ v4.4 | 修复拖拽闪退问题;为编辑分类框添加下拉建议(datalist)。 |
| ✅ v4.5 | 重写拖拽交互:长按显示占位符 → 拖拽占位符;修复分类下拉建议无法选中问题;新引擎按分类插入同类之后。 |
| ✅ v4.6 | 添加拖拽时的视觉反馈(其他图标自动让位);修复分类下拉框在有内容时无法显示建议的问题。 |
| ✅ v4.7 | 修复拖拽索引映射错误,将 datalist 替换为自定义下拉组件以提升兼容性。 |
| ✅ v4.8 | 进一步优化拖拽体验:长按触发占位符,拖拽占位符排序;修复分类自动插入位置逻辑。 |
| ✅ v4.9 | 添加实时边距调整;改为划词后显示搜索浮动按钮(🔍),工具栏悬停出现。 |
| ✅ v5.0 | 极简化浮动按钮样式(无背景、无边框),使其更融入页面。 |
| ✅ v5.1 | 尝试使用 position:fixed 修复多行拖拽时的光标错位问题(未完全解决)。 |
| ✅ v5.2 | 使用 2D HitTest 算法彻底解决多行拖拽光标错位;确认浮动按钮不可拖拽,只能通过源码调整位置。 |
点击工具栏右侧的齿轮按钮(⚙️),可打开搜索引擎管理界面,提供以下功能:
{text} 作为关键词占位符)。以下参数可通过修改脚本源码进行自定义:
| 参数名 | 默认值 | 说明 |
|---|---|---|
longPressThreshold |
300 | 长按触发拖拽的时间(毫秒) |
floatBtnPosition.x |
null |
浮动按钮固定X坐标,null 表示跟随划词位置 |
floatBtnPosition.y |
null |
浮动按钮固定Y坐标,null 表示跟随划词位置 |
如果希望浮动按钮固定显示在屏幕特定位置,可修改源码中的 floatBtnPosition 变量:
// 固定在屏幕左上角 (100, 100) 位置
var floatBtnPosition = { x: 100, y: 100 };
// 跟随划词位置(默认)
var floatBtnPosition = { x: null, y: null };
点击下方按钮直接安装最新版本:
或者手动安装:
Q1: 拖拽排序时占位符位置不正确?
请确认使用的是 v5.2 或更高版本。v5.2 已通过 2D HitTest 算法彻底解决了多行拖拽时的光标错位问题。如果问题仍存,请检查是否有其他脚本干扰了鼠标事件。
Q2: 如何移动搜索浮动按钮?
浮动按钮不支持拖拽。如需固定位置,请修改脚本源码中的 floatBtnPosition 变量。
Q3: 如何添加自定义搜索引擎?
点击工具栏右侧的齿轮按钮 → 点击“添加引擎” → 填写名称、图标URL、搜索URL(使用 {text} 作为关键词占位符)、选择或输入分类。
Q4: 数据存储在哪里?
脚本使用 Tampermonkey 的 GM_setValue/GM_getValue API 存储数据,数据保存在浏览器本地。如需重置,可在浏览器开发者工具中手动清除相关存储。
📌 最后鸣谢 By Sirius,脚本灵感源自于他,此版本由 By9527 重构覆写优化。