Я хочу сделать свой вопрос ясным. Пожалуйста, не путайте его с определением нажатия клавиши. Я не хочу, чтобы пользователь нажал любую клавишу. Напротив, я хочу запустить script, который запускает событие нажатия клавиши Escape. Пожалуйста, помогите!
Вызов события нажатия клавиши Escape с помощью jquery
Ответ 1
Вы можете использовать $.Event()
для создания объекта Event, содержащего событие keydown с ключевым кодом 27 (который должен быть Esc), например:
var esc = $.Event("keydown", { keyCode: 27 });
$("body").trigger(esc); // change body to the element where you'd like to execute the escape key press.
См. эта рабочая демонстрация и docs на jquery.com
Также обратите внимание, что, как заявил Christofer, это может не работать во всех браузерах и средах, поскольку это может считаться теневым поведением, которое может быть использовано вредоносным способом - подобно запуску события click на <a>
с внешний href не будет. Я успешно протестировал это (Esc) в Chrome, Safari, Opera, FF и IE9.
Ответ 2
По соображениям безопасности некоторые браузеры (не уверены, что все) не позволяют вам запускать keydown-events. Подробнее см. в этой статье.
Цитата из статьи:
Safari/Chrome делает свойства keyCode и charCode доступными только для чтения, поэтому невозможно имитировать конкретные клавиши при ручной стрельбе события.