Drift:捕获Iframe中Drift聊天机器人的textarea事件
捕获Drift聊天机器人输入框值的可行方案
方案一:监听输入框实时输入值
Drift的聊天输入框是动态生成的DOM元素,你可以通过MutationObserver监听页面DOM变化,找到对应的textarea后绑定input事件来捕获实时输入内容:
// 监听DOM变化以定位Drift输入框 const observer = new MutationObserver((mutations) => { mutations.forEach(mutation => { if (mutation.addedNodes.length) { const driftTextarea = document.querySelector('textarea[data-testid="drift-message-input"]'); if (driftTextarea && !driftTextarea.dataset.listenerAttached) { driftTextarea.dataset.listenerAttached = 'true'; driftTextarea.addEventListener('input', e => { console.log('实时输入值:', e.target.value); // 这里可自行处理捕获到的输入内容 }); } } }); }); observer.observe(document.body, { childList: true, subtree: true });
⚠️ 注意:这种方式依赖Drift的DOM结构(比如示例中的选择器),如果Drift后续更新页面布局,可能需要调整选择器来适配。
方案二:监听官方「用户发送消息」事件
这是更稳定的官方方案,直接通过Drift提供的全局事件监听捕获用户发送后的消息内容,无需操作DOM:
// 绑定Drift的消息发送事件 window.drift.on('message:sent', event => { console.log('用户发送的消息:', event.data.body); // event.data包含消息完整信息,比如body是消息文本、userId是用户标识等 });
你提到的官方文档里的「用户发送消息」事件,就是通过这种方式触发的,只要页面已加载Drift脚本,就能通过window.drift.on绑定该事件。
内容的提问来源于stack exchange,提问作者ks1705
相关产品推荐
相关产品推荐

