我正在使用Bot Framework WebChat作为我的Bot的用户界面。对于我的方案,我需要知道用户目前是否在输入文本框中输入一些数据,无论是通过语音还是通过输入。在WebChat中是否有任何方法来检查当前是否有一些输入被送入输入框?我的应用中没有使用React,因此在使用React托管时可能无法使用WebChat提供的各种React Hooks。
最简单的方法是使用一个 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');
})
很明显,你可以用其他的方法来试验 事件类型 以找到适合自己的需求。
希望对您有所帮助!