Мне нужно поймать все клавиши, когда они нажаты, включая мертвые клавиши (например, ´, ^) и распечатать их. Я заметил, что при нормальных обстоятельствах мертвая клавиша печатается только тогда, когда следует, например, пробел, поэтому для создания «´» требуется два ввода: «´» и «». Так как мне нужно напечатать его на первом входе, я попытался запустить пробел вручную, что-то вроде этого:
onKey: async function (event) {
...
if (event.key === "Dead") {
const fakeInput = new KeyboardEvent("keydown", {
key: " ",
view: global,
});
document.body.dispatchEvent(fakeInput);
}
...
}
Но это только выдает "", в нем нет мертвого ключа. И мертвый ключ остается в какой-то очереди, потому что, если я нажму следующую клавишу, например, «а», я получу «а».
Я слушаю «keydown» (вот почему я тоже пытаюсь подделать это), и слушание происходит по всему телу:
document.body.onkeydown = (ev) => {
this.onKey(ev);
};
Так я могу вытолкнуть мертвый ключ из этой очереди? Или есть другой способ как это сделать? Я надеюсь, что мой вопрос ясен, если нет, я постараюсь добавить больше информации.