webirus
@webirus
Тыжверстальщик! Наверстай мне упущенное...

Как можно реализовать зацикленное нажатие кнопки?

Собственно, цель такая)
В браузере на определенной странице нужно нажать допустим какую-то комбинацию клавиш, не важно какую.
В этот момент начинается повторение нажатия цифры 2 на клавиатуре. Постоянно, быстро, монотонно.
Потом нажимаешь еще какую-то комбинацию, и действия отключаются.
Как вообще подойти к решению? Через JS и браузерный скрипт можно?
  • Вопрос задан
  • 230 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Как следить на нажатой клавишей уже подсказали (но я думаю, вы это сами уже знаете, судя по ответам). Подскажу, как имитировать нажатие клавиши. Нужно найти элемент, который ожидает нажатие клавиши, и вызвать у него метод dispatchEvent, с передачей объекта события. Возьмем например событие KeyDown. В скрипте на сайте стоит обработчик события keydown, и в нем описана фильтрация того, что нажата клавиша 2, фильтрация может быть по одному из следующих свойств
e.which, e.code, e.key, e.keyCode, e.shiftKey
нужно посмотреть, какие свойства нужны (можно не смотреть, и отправить их все), и назначить их в наш объект события KeyDown. Пример для клавиши 2
let eventObj = new KeyboardEvent('keydown', {
  	which: 50, code: 'Digit2', key: '2', keyCode: 50, shiftKey: false
};

и этот объект нужно передать в dispatchEvent
document.getElementById('элемент').dispatchEvent(eventObj);

Пример https://jsfiddle.net/Vlad_IT/t3ofjr4w/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
20 апр. 2024, в 14:27
3000 руб./за проект
20 апр. 2024, в 13:56
7000 руб./за проект
20 апр. 2024, в 13:52
7000 руб./за проект