Вызов события имитацией нажатия пробела
Доброго времени суток, друзья!
Прошу помощи. Третью ночь не сплю. Этот код запускается в консоли хром на чужом сайте. Цель: Замена данных 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, время: 19:39. |