Захватите клавишу Escape в браузерах WebKit - PullRequest
13 голосов
/ 05 апреля 2009

У меня есть диалоговое окно, которое появляется, и я хотел бы, чтобы оно снова скрывалось при нажатии клавиши ESC.

Все это прекрасно работает в IE, Fx, Opera - код регистрирует обработчик события document.onkeypress, когда отображается окно, затем проверяет событие keyCode, чтобы увидеть, является ли это escape-ключом или нет (keyCode 27), но это не работает в браузерах на основе WebKit (Chrome и Safari (3)), хотя другие ключи могут быть захвачены таким образом.

Разве браузеры WebKit вообще не запускают событие при нажатии escape?

Кто-нибудь знает, почему это не работает, как это исправить, или знает об обходном пути.

1 Ответ

24 голосов
/ 05 апреля 2009

Вместо этого поймайте keydown / keyup. Взгляните на эту запись для получения дополнительной информации.

...