You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Javascript UI kit修改Weavy聊天按回车发消息的默认行为

修改Weavy聊天中回车键发送消息的默认行为

要自定义Weavy聊天里回车键的行为,核心思路是通过监听输入框的键盘事件,拦截默认的回车发送逻辑,替换成你需要的规则(比如回车换行、Ctrl+回车发送)。以下是具体实现方案:


1. 确保Weavy实例加载完成

Weavy的UI元素是动态初始化的,所以要先监听实例的ready事件,确保DOM元素已生成:

// 假设你的Weavy实例变量名为weavy
weavy.on('ready', () => {
  // 在这里编写自定义逻辑
});

2. 拦截输入框的键盘事件

通过DOM选择器定位聊天输入框(选择器需根据Weavy实际DOM结构调整,可通过浏览器开发者工具查看),监听keydown事件并修改行为:

示例1:回车换行,Ctrl/Cmd+回车发送

weavy.on('ready', () => {
  // 监听根容器上的键盘事件(兼容输入框动态生成的场景)
  weavy.root.addEventListener('keydown', (e) => {
    const messageInput = e.target.closest('.wy-message-input');
    if (!messageInput || e.key !== 'Enter') return;

    // 未按住Ctrl/Cmd时,阻止默认发送,插入换行
    if (!e.ctrlKey && !e.metaKey) {
      e.preventDefault();
      e.stopPropagation();
      
      // 在光标位置插入换行符
      const start = messageInput.selectionStart;
      const end = messageInput.selectionEnd;
      messageInput.value = `${messageInput.value.substring(0, start)}\n${messageInput.value.substring(end)}`;
      messageInput.selectionStart = messageInput.selectionEnd = start + 1;
    } 
    // 按住Ctrl/Cmd时,触发发送
    else {
      // 模拟点击发送按钮或调用Weavy内部发送方法
      const sendBtn = messageInput.closest('.wy-message-compose').querySelector('.wy-send-button');
      sendBtn?.click();
    }
  });
});

示例2:完全禁用回车发送,仅通过按钮发送

如果不需要换行,只想取消回车发送的默认行为:

weavy.on('ready', () => {
  const messageInput = weavy.root.querySelector('.wy-message-input');
  if (messageInput) {
    messageInput.addEventListener('keydown', (e) => {
      if (e.key === 'Enter') {
        e.preventDefault();
        e.stopPropagation();
      }
    });
  }
});

注意事项

  • 选择器适配:不同Weavy版本的DOM类名可能有差异,若上述选择器无效,打开浏览器开发者工具查看聊天输入框的实际类名或属性(比如[data-weavy="message-input"])。
  • Shadow DOM兼容:如果Weavy使用Shadow DOM包裹组件,需通过weavy.root.shadowRoot来查询元素。
  • 动态元素处理:若聊天输入框是动态生成的(比如切换聊天会话时重建),使用事件委托(监听根容器的事件)比直接绑定输入框更可靠。

内容的提问来源于stack exchange,提问作者Lauro César

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 01:07:45