Есть ли способ проверить, активно ли текстовое поле ввода пользователя в WebChat? - PullRequest
1 голос
/ 13 апреля 2020

Я использую Bot Framework WebChat в качестве интерфейса для моего бота. Для моего сценария мне нужно знать, вводит ли пользователь какие-либо данные в текстовое поле «Ввод», либо голосом, либо печатая. Есть ли какой-либо способ в WebChat проверить, подается ли какой-либо ввод в поле ввода? Я не использую React в своем приложении и, следовательно, возможно, не смогу использовать различные React Hooks, предоставляемые WebChat при размещении в React.

1 Ответ

0 голосов
/ 11 мая 2020

Самый простой способ - использовать eventListener(), размещенный на вашей странице. В настоящее время поле ввода находится в div под окном транскрипта и играет роль «формы». Внутри это div с классом "main". Там вы можете найти элемент ввода, из которого должен быть только один.

Теперь в веб-чате могут присутствовать другие элементы с ролью «формы», либо встроенные, либо добавленные как функции некоторых других. Код веб-чата (или другого). Итак, вам нужно будет написать свой код с учетом этого. Ниже я также выбираю все элементы с классом «main» внутри «формы» по той же причине, хотя есть только один. Если вы уверены, вы можете отключить этот шаг.

Из коробки это будет работать:

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

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

Очевидно, вы можете экспериментировать с другими типами событий , чтобы найти подходящую для вас потребность.

Надежда на помощь!

...