在WebChat中,有没有办法检查用户输入的文本框是否处于活动状态?

问题描述 投票:1回答:1

我正在使用Bot Framework WebChat作为我的Bot的用户界面。对于我的方案,我需要知道用户目前是否在输入文本框中输入一些数据,无论是通过语音还是通过输入。在WebChat中是否有任何方法来检查当前是否有一些输入被送入输入框?我的应用中没有使用React,因此在使用React托管时可能无法使用WebChat提供的各种React Hooks。

botframework direct-line-botframework web-chat
1个回答
0
投票

最简单的方法是使用一个 eventListener() 放在你的页面中。目前,输入框位于成绩单窗口下面的一个div中,作用是 "表单"。在这里面是一个类为 "main "的div。在那里你可以找到输入元素,它应该只有一个。

现在,在Web Chat中可能还有其他元素具有 "表单 "的作用,这些元素可能是本地的,也可能是作为其他Web Chat(或其他)代码的功能添加的。所以,你需要在编写代码时考虑到这一点。下面,我也选择了 "表单 "里面所有类为 "main "的元素,虽然只有一个,但原因是一样的。如果你有信心,可以把这一步省掉。

开箱即用,这样就可以了。

const form = document.querySelectorAll('form');
const main = form[0].querySelectorAll('main');
const input = main[0].querySelector('input');

input.addEventListener('keyup', () => {
  console.log('typing');
})

很明显,你可以用其他的方法来试验 事件类型 以找到适合自己的需求。

希望对您有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.