Каков наилучший способ имитации ввода пользователем текста в поле ввода текста в JS и / или jQuery?
На самом деле я не хочу помещать текст в поле ввода, я просто хочу вызвать все обработчики событий , которые обычно запускаются пользователем, вводящим информацию в поле ввода. Это означает фокусировку, нажатие клавиш, нажатие клавиш, нажатие клавиш и размытие. Думаю.
Так как же это сделать?
$('item').trigger('keypress', {which: 'A'.charCodeAt(0)});
ctrlKey: true
, также:shiftKey
,altKey
Вы можете отправлять такие события, как
источник
el.dispatchEvent(new Event('keypress', {keyCode: 'a'}))
Ctrl
:el.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 70, ctrlKey: true }));
(это вызовет ярлыкCtrl + F
)Чтобы вызвать enterнажатие клавиши, мне пришлось изменить ответ @ebynum, в частности, используя свойство keyCode.
источник
keydown
событие не было поймано или я что-то здесь не так делаю? fiddle.jshell.net/Palestinian/8d8J9Вот пример vanilla js для запуска любого события:
источник
Вы можете достичь этого с помощью:
EventTarget.dispatchEvent(event)
и, передав новое KeyboardEvent в качестве события.Например:
element.dispatchEvent(new KeyboardEvent('keypress', {'key': 'a'}))
Рабочий пример:
MDN рассылка событий
MDN KeyboardEvent
источник
Теперь вы можете сделать:
источник
Прежде всего, нужно сказать, что образец от Sionnach733 работал безупречно. Некоторые пользователи жалуются на отсутствие реальных примеров. Вот мои два цента. Я работал над симуляцией щелчка мыши при использовании этого сайта: https://www.youtube.com/tv . Вы можете открыть любое видео и попробовать запустить этот код. Он выполняет переход к следующему видео.
источник
Я подумал, что хочу обратить ваше внимание на то, что в определенном контексте, где слушатель был определен в плагине jQuery, единственное, что успешно имитировало для меня событие нажатия клавиши, в конечном итоге пойманное этим слушателем, было использование setTimeout (). например
Любое использование
$("#txtName").keypress()
было проигнорировано , хотя размещено в конце.ready() function
. Никакого конкретного дополнения DOM в любом случае не создавалось асинхронно.источник
Для приведения типов к KeyboardEventInit и предоставления правильного целого числа keyCode
источник