Вызов события имитацией нажатия пробела
Доброго времени суток, друзья!
Прошу помощи. Третью ночь не сплю. Этот код запускается в консоли хром на чужом сайте. Цель: Замена данных input и имитация ввода с клавиатуры для вызова обработчика. Описание: Меняю текст input обычным val(). После этого нужно имитировать нажатие пробела в input и тогда запрос отправляется обработчику. Нашел на хабре пост dom 2 events. Взял от туда код имитации нажатия клавиши пробела. Вставил, подключил, не работает. Надеюсь Вы увидите причину. Спасибо большое. Код: // Задаем input id = element_id и меняем его value на переменную deposit var deposit = '177'; $('.amount-text').attr('id', 'element_id'); $('#element_id').val(deposit); var element = document.getElementById('element_id'); // Далее совершаем клик по input (может и не требуется) var o = document.createEvent('MouseEvents'); o.initEvent('click', true, true); // Используется унаследованный метод модуля Events, а не аналогичный модуля MouseEvents, объект которого был создан element.dispatchEvent(o); // Далее пытаемся поставить пробел в input (кажется именно здесь я сделал не так) if( window.KeyEvent ) // Для FF { var o = document.createEvent('KeyEvents'); o.initKeyEvent( 'keyup', true, true, window, false, false, false, false, 32, 0 ); } else // Для остальных браузеров { var o = document.createEvent('UIEvents'); o.initUIEvent( 'keyup', true, true, window, 1 ); o.keyCode = 32; // Указываем дополнительный параметр, так как initUIEvent его не принимает } element.dispatchEvent(o); |
Неумелый, а с чего Вы решили, что тут нужно задействовать именно keyup? Пробел ведь можно по разному отслеживать, keydown/keypress/oninput.
Проще посмотреть какой запрос отправляется и отправлять такой же. |
Это почти не реально. Я пытался. Никак не могу найти. Может есть утилита какая?
|
Цитата:
ps такая же ситуация, знаю точно что задействован keydown, обработчик срабатывает только в момент нажатия клавиши, однако явно с каким-то контекстом |
Часовой пояс GMT +3, время: 18:29. |