选中文字问 ChatGPT使用说明
脚本简介
这是一个 Tampermonkey / Violentmonkey / Greasemonkey 用户脚本。
在任意网页选中文字后,会出现一个可拖动的悬浮按钮,一键把选中内容发送到 ChatGPT(chatgpt.com),支持:
- 直接发送选中文字
- 自定义补充提示词
- 自动新建聊天
- 自动点击发送
- 附带来源网址
- 拖动弹层位置
脚本版本:1.2.1
许可证:MIT
一、安装前准备
浏览器安装用户脚本管理器(任选其一):
确保能正常访问 https://chatgpt.com/ 并已登录账号。
脚本需要以下权限(安装时会提示):
GM_setValue / GM_getValue / GM_addValueChangeListener(跨标签页通信)
GM_registerMenuCommand(油猴菜单)
GM_openInTab(打开 ChatGPT 标签页)
二、安装方法
- 打开你的用户脚本管理器,新建脚本。
- 把完整脚本代码粘贴进去,保存。
- 刷新任意网页,确认脚本已启用(管理器图标显示已启用状态)。
匹配范围:所有 http://*/* 和 https://*/* 页面(@noframes 不在 iframe 中运行)。
三、配置说明(重要)
打开脚本,找到顶部的 CONFIG 对象,可按需修改:
const CONFIG = {
GPT_URL: 'https://chatgpt.com/', // ChatGPT 地址
// 填入内容后是否自动点击发送
AUTO_SEND: true,
// 每次发送前是否强制创建新聊天
ALWAYS_NEW_CHAT: true,
// 用户没有输入提示词时使用的默认提示
DEFAULT_PROMPT: '请解释这段内容。',
// 自动添加到内容前后的文字
PREFIX: '',
SUFFIX: '',
// 消息有效时间:2分钟(超时自动丢弃)
MESSAGE_TTL: 2 * 60 * 1000
};
推荐配置示例
| 场景 |
AUTO_SEND |
ALWAYS_NEW_CHAT |
DEFAULT_PROMPT 示例 |
| 快速解释选中内容 |
true |
true |
请解释这段内容。 |
| 只填入输入框,手动发送 |
false |
true |
请翻译成中文。 |
| 继续当前对话 |
true |
false |
(留空或自定义) |
| 添加固定前缀/后缀 |
任意 |
任意 |
配合 PREFIX / SUFFIX 使用 |
修改后保存脚本并刷新网页即可生效。
四、日常使用方法
1. 基础用法(最常用)
- 在任意网页用鼠标选中一段文字。
- 选中后会自动弹出悬浮按钮栏:
[⋮⋮] [问 GPT] [▼]
- 点击 「问 GPT」:
- 把选中文字包装成引用格式(每行前加
>)
- 加上默认提示词(
DEFAULT_PROMPT)
- 附上来源网址
- 发送到 ChatGPT
2. 添加自定义提示词
- 选中文字后弹出按钮。
- 点击右侧 「▼」 展开提示词输入框。
- 输入你的提示词(例如:
请总结要点、翻译成英文、找出错误 等)。
- 按 Enter 发送。
- 按 Esc 可收起输入框。
如果输入了自定义提示词,会优先使用它,不再使用 DEFAULT_PROMPT。
3. 拖动弹层
- 按住左侧 「⋮⋮」 拖动手柄即可移动整个弹层。
- 弹层会自动限制在窗口内,不会被拖出屏幕。
- 窗口大小改变时也会自动校正位置。
4. 油猴菜单备用入口
右键点击脚本管理器图标 → 找到 「问 GPT:发送选中文字」,也可直接发送当前选中内容(无需弹出按钮)。
五、发送内容格式
脚本会自动把内容组合成如下格式再提交:
> 选中的第一行
> 选中的第二行
> ...
用户提示词(或默认提示词)
来源网址:
https://example.com/page
- 选中文字被引用(
> 前缀),方便 ChatGPT 区分。
- 支持多行文本。
- 来源网址便于回溯原文。
六、工作流程(内部逻辑简述)
- 在普通网页选中文字 → 弹出悬浮按钮。
- 点击发送 → 通过
GM_setValue 把消息写入存储。
- 脚本检测是否已有 ChatGPT 标签页:
- 有:直接通知该标签页处理。
- 无:自动打开新的 ChatGPT 标签页。
- ChatGPT 页面收到消息后:
- 如开启
ALWAYS_NEW_CHAT,先点击「新聊天」。
- 找到输入框并填入内容。
- 如开启
AUTO_SEND,自动点击发送按钮。
- 处理完成后通知原网页,显示成功提示。
消息有 2 分钟有效期,超时会自动丢弃,避免旧消息干扰。
七、注意事项与常见问题
1. 为什么没有弹出按钮?
- 确认脚本已启用且匹配当前页面。
- 选中文字后稍微等一下(约 30ms 延迟)。
- 某些特殊页面(如 PDF 阅读器、部分 SPA)可能无法正常获取选区。
- 输入框/文本框内选中文字也支持。
2. 发送后没有自动新建聊天?
- 检查
ALWAYS_NEW_CHAT 是否为 true。
- ChatGPT 界面更新可能导致「新聊天」按钮选择器失效(脚本已做多重兼容,仍可能偶发)。
- 可手动刷新 ChatGPT 页面后再试。
3. 内容填入了但不自动发送?
- 检查
AUTO_SEND 是否为 true。
- 发送按钮选择器可能因 ChatGPT 改版失效。
- 此时内容已填入输入框,手动点击发送即可。
4. 跨标签页通信失败?
- 确保脚本在普通网页和 chatgpt.com 上都启用。
- 浏览器隐私模式 / 严格跟踪防护有时会干扰
GM_setValue。
- 尝试关闭其他干扰扩展后重试。
5. 提示词输入框中文输入法问题
- 脚本已处理中文输入法组字状态,正在选字时按 Enter 不会误提交。
6. 安全提示
- 脚本仅在本地浏览器运行,不会把内容上传到第三方服务器(仅通过浏览器打开的 ChatGPT 页面提交)。
- 请勿在不信任的网站上启用敏感配置。
八、快捷操作总结
| 操作 |
方式 |
| 快速发送选中文字 |
选中 → 点「问 GPT」 |
| 加自定义提示词发送 |
选中 → 点「▼」→ 输入 → Enter |
| 拖动弹层 |
按住「⋮⋮」拖动 |
| 收起提示词框 |
Esc 或再点「▲」 |
| 菜单发送 |
油猴菜单 →「问 GPT:发送选中文字」 |
| 点击外部关闭弹层 |
点击页面空白处 |
| 滚动页面关闭弹层 |
自动关闭 |
九、更新与反馈
- 当前版本:
1.2.1
- 如果 ChatGPT 界面大改导致功能失效,可检查并更新选择器(
COMPOSER_SELECTORS、发送按钮、新聊天按钮相关代码)。
- 欢迎根据个人需求修改
CONFIG 或功能逻辑。
祝使用愉快!
选中文字 → 一键问 GPT,效率拉满。