Вы можете создать собственное событие, используя KeyboardEvent
. Но действие по умолчанию, связанное с событием (например, ctrl+s
, ctrl+p
), не инициируется браузером. Посмотрите на следующее примечание от MDN
Источник - https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent
Примечание: запуск события вручную не создает действия по умолчанию, связанного с этим событием , Например, ручное срабатывание ключевого события не приводит к тому, что эта буква появляется при фокусированном вводе текста. В случае событий пользовательского интерфейса это важно по соображениям безопасности, поскольку не позволяет сценариям имитировать действия пользователя, взаимодействующие с самим браузером.
Код для запуска настраиваемого события:
(() => {
document.querySelector("#saveMe").addEventListener('click', ($event) => {
let event = new KeyboardEvent('keydown', {
key: "s",
code: "KeyS",
ctrlKey: true
});
document.dispatchEvent(event);
});
document.addEventListener('keydown', ($event) => {
console.log('keydown fired', $event);
});
})();
<input type="button" id="saveMe" value="Save Me">