evgeniy8705
@evgeniy8705
Повелитель вселенной

Как сделать имитацию событий клавиатуры?

document.addEventListener("keydown", function(event) {
	console.log(event.key);
}, false);

var event = document.createEvent("KeyboardEvent");
event.initKeyboardEvent("keydown", true, true, document.defaultView, "a", 0, "Shift", 0);

document..dispatchEvent(event);


Раньше вот так вот вроде как работало. На данный момент метод initKeyboardEvent - deprecated и не работает, по крайней мере в хроме и опере точно. В firefox другой способ создания объекта event, не проверял работает ли или нет.

В общем как сейчас создать свое событие клавиатуры чтобы работало во всех браузерах?
  • Вопрос задан
  • 2203 просмотра
Пригласить эксперта
Ответы на вопрос 2
evgeniy8705
@evgeniy8705 Автор вопроса
Повелитель вселенной
Нашел решение вроде как для всех браузеров через создание универсального события, с указанием специфичных свойств для событий клавиатуры. В хроме точно работает.

document.addEventListener("keydown", function(event) {
	console.log(event.key);
}, false);

var event = document.createEvent("Event");

event.initEvent("keydown", true, true);
event.view = document.defaultView;
event.altKey = false;
event.ctrlKey = false;
event.shiftKey = false;
event.metaKey = false;
event.key = "a";

document.dispatchEvent(event);
Ответ написан
letehaha
@letehaha
Вникаю вo front-end
$(document).on('keydown', function(e) {
  if (true) {
    if (e.keyCode === 37 || e.keyCode === 38)  YourFunction();
    else if (e.keyCode === 39 || e.keyCode === 40) YourFunction();
  }
});

Я такое использовал для стрелок в слайдере
Под себя сделайте и будет хорошо
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы