豆包自定义短语助手

Created at 2 days ago
Updated at 2 days ago
在豆包网页添加复制短语功能,支持轮换短语和自定义管理,提供三种复制模式:只复制、复制追加、复制追加并发送
Total Installs
21
Today's New
+0
User Rating
- / 5.0 (0)
Current Version
1.0.3
Script Details
Applicable Sites

豆包自定义短语助手 - 智能短语管理与快捷发送脚本

TampermonkeyViolentmonkey脚本猫版本

功能简介

这是专为豆包网页版(doubao.com/chat/*)设计的用户脚本,核心解决高频短语重复输入、复制粘贴繁琐的问题,支持短语自定义管理、快捷复制/追加/发送,兼顾操作效率与使用灵活性。

  • 核心功能:新增悬浮式短语助手面板,支持短语轮换、三种复制模式(只复制/复制追加/复制追加并发送)
  • 界面设计:轻量化悬浮面板,固定在页面右下角不遮挡核心内容,视觉风格简洁统一
  • 数据持久化:短语列表自动保存到本地存储,刷新/重启浏览器不丢失,支持自定义增删管理
  • 场景适配:完美适配豆包网页版聊天界面,自动识别输入框并精准操作
  • 无侵入性:仅新增悬浮面板,不修改原有页面结构和功能,不影响豆包正常使用

功能特点

核心体验优化

  • 多模式复制:支持「只复制」「复制并追加到输入框」「复制追加并自动发送」三种模式,覆盖不同使用场景
  • 🔄 短语轮换:上下箭头一键切换短语,实时显示当前索引,多短语管理更高效
  • 📝 自定义管理:支持新增/删除/保存短语列表,默认内置常用短语,可完全自定义扩展
  • 📍 固定定位:面板固定在页面右下角,不遮挡聊天/输入区域,适配不同屏幕尺寸
  • 💬 即时反馈:操作后弹出临时提示框,清晰告知执行结果,避免重复操作
  • 🎨 视觉设计:扁平化风格+柔和配色,hover 效果明显,按钮图标直观易懂

兼容性与安全性

  • 🛡️ 域名限定:仅对豆包聊天页面(doubao.com/chat/*)生效,避免误触发其他网站
  • 🔧 无侵入修改:通过原生事件模拟操作输入框,不篡改页面原有 DOM 结构和 JS 逻辑
  • 💾 数据本地化:使用 GM_setValue/GM_getValue 存储短语数据,仅保存在本地,无隐私泄露风险
  • 🖥️ 多分辨率适配:面板尺寸自适应,短语超长时自动省略,保证不同设备显示正常

安装方法

  1. 确保浏览器已安装用户脚本管理器扩展:

  2. 新建用户脚本,复制完整代码并保存:

    • 点击脚本管理器「+」号新建脚本
    • 替换默认代码为完整脚本代码
    • 保存后刷新豆包聊天页面即可生效

适用页面

  • https://www.doubao.com/chat/*

操作说明

操作方式 功能 说明
点击「📋」按钮 只复制当前短语 仅将短语复制到剪贴板,不操作输入框
点击「📋+」按钮 复制并追加到输入框 复制短语并追加到豆包输入框末尾
点击「📋↵」按钮 复制、追加并发送 复制短语→追加到输入框→自动发送消息
点击「↑/↓」按钮 切换短语 上下切换短语列表,循环显示所有短语
点击「管理短语」按钮 打开短语管理面板 新增/删除/保存自定义短语列表
管理面板「添加」按钮 新增短语 输入框填写内容后点击,添加到短语列表
管理面板「删除」按钮 删除短语 点击对应短语右侧按钮,删除该短语
管理面板「保存」按钮 保存短语列表 保存修改后的短语列表,即时生效

注意:自动发送功能通过模拟回车键实现,若豆包界面结构变更可能需要调整选择器

技术细节

核心配置

// 默认短语列表(可在管理面板自定义)
const DEFAULT_PHRASES = [
  "提取文字",
  "这图老师又讲了什么,详细述说,每个部分、每个细节",
];

// 输入框选择器(核心定位元素)
const INPUT_SELECTOR = 'textarea[data-testid="chat_input_input"]';

核心功能实现

// 1. 三种复制模式核心逻辑
// 只复制到剪贴板
function copyOnly(text) {
  navigator.clipboard.writeText(text)
    .then(() => showMessage("已复制到剪贴板!"))
    .catch(err => {
      console.error("复制失败:", err);
      showMessage("复制失败,请手动复制");
    });
}

// 复制并追加到输入框
function copyAndAppend(text) {
  navigator.clipboard.writeText(text).then(() => {
    const input = document.querySelector(INPUT_SELECTOR);
    if (input) {
      // 原生方式设置值并触发事件
      const nativeSetter = Object.getOwnPropertyDescriptor(
        window.HTMLTextAreaElement.prototype, "value"
      ).set;
      nativeSetter.call(input, input.value ? input.value + "\n" + text : text);
      input.dispatchEvent(new Event("input", { bubbles: true }));
    }
  });
}

// 复制、追加并发送
function copyAppendAndSend(text) {
  copyAndAppend(text);
  // 模拟回车键发送
  setTimeout(() => {
    const input = document.querySelector(INPUT_SELECTOR);
    input.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', keyCode: 13 }));
    input.dispatchEvent(new KeyboardEvent('keyup', { key: 'Enter', keyCode: 13 }));
  }, 100);
}

// 2. 数据持久化管理
function getPhrases() {
  const savedPhrases = GM_getValue("phrases");
  return savedPhrases && savedPhrases.length > 0 ? savedPhrases : DEFAULT_PHRASES;
}

function getCurrentIndex() {
  return GM_getValue("currentIndex", 0);
}

执行流程

  1. 页面加载完成后创建悬浮面板,读取本地存储的短语列表(无则使用默认值)
  2. 面板显示当前选中的短语及索引,提供切换/复制操作按钮
  3. 点击复制按钮根据选择的模式执行对应操作,给出视觉反馈
  4. 点击「管理短语」打开管理面板,支持增删改查短语列表
  5. 保存短语列表后自动更新本地存储,并重新渲染悬浮面板
  6. 所有操作仅在豆包聊天页面生效,数据本地存储不联网

配置选项

参数 默认值 说明
DEFAULT_PHRASES ["提取文字", ...] 初始默认短语列表
INPUT_SELECTOR textarea[data-testid="chat_input_input"] 输入框定位选择器
面板位置 右下角 悬浮面板固定位置
提示框显示时长 1500ms 操作反馈提示框显示时间
发送延迟 100ms 追加文本后发送的延迟时间

常见问题

Q: 脚本没有生效怎么办?

A:

  1. 检查控制台(F12)是否有错误信息
  2. 确认当前页面URL是 https://www.doubao.com/chat/* 格式
  3. 刷新豆包页面重试(脚本在load事件后执行)
  4. 确认脚本管理器已启用该脚本,且@match规则正确

Q: 自动发送功能失效怎么办?

A:

  1. 检查输入框选择器是否失效(F12查看输入框的data-testid属性)
  2. 修改代码中 INPUT_SELECTOR 为最新的选择器
  3. 调整发送延迟时间(将100ms改为200-500ms)
  4. 确认豆包未开启「按Enter换行,Ctrl+Enter发送」模式

Q: 短语列表保存后丢失怎么办?

A:

  1. 确认脚本管理器已授予「存储」权限
  2. 检查是否使用了隐私模式/清理了浏览器数据
  3. 手动备份短语列表:在管理面板复制所有短语,保存到本地文档

Q: 面板遮挡内容怎么办?

A:

  1. 修改CSS中 .doubao-copy-container 的定位属性:
    .doubao-copy-container {
        bottom: 80px; /* 调整底部距离 */
        right: 20px;  /* 调整右侧距离 */
        /* 或改为左侧:left: 20px; */
    }
    
  2. 保存修改后刷新页面即可生效

更新日志

v1.0

  • 🎉 初始版本:实现核心短语管理、三种复制模式功能
  • 短语轮换:上下箭头切换短语,实时显示索引
  • 📝 自定义管理:支持新增/删除/保存短语列表
  • 💾 数据持久化:使用GM API存储短语数据,本地持久化
  • 🎨 视觉设计:添加悬浮面板和操作反馈提示
  • 🔧 域名限定:仅对豆包聊天页面生效,保证安全性

免责声明

本脚本仅供学习交流使用,请勿用于商业用途。脚本仅通过模拟用户操作实现快捷功能,未修改豆包核心功能,使用脚本产生的一切后果由使用者自行承担。

反馈与支持

如果您在使用过程中遇到问题或有改进建议,请通过以下方式反馈:

  • 在脚本评论区留言
  • 提交Issue到脚本仓库
  • 反馈豆包界面更新导致的脚本失效问题

温馨提示

  1. 豆包网页版界面更新可能导致选择器失效,如功能异常请检查并更新选择器
  2. 建议定期备份自定义短语列表,避免数据丢失
  3. 使用过程中如遇问题,可按F12查看控制台日志定位问题