Я немного расстроен текущим состоянием захвата ключей для веб-приложений.Это прекрасно работает, если вы знаете, что ваш пользователь будет печатать в определенном месте (например, поле input
), но как только вы захотите сделать глобальные ярлыки для всего «приложения», оно, кажется, развалится,
Я пытаюсь выяснить, существует ли лучший способ для захвата всех ключевых событий для веб-страницы, чем метод, который я использую в настоящее время.
МойТекущий метод заключается в использовании плагина JQuery Hotkeys , привязанного к элементу document
, то есть:
$(document).bind("keyup", "delete", function() {});
, который прекрасно работает для большинства целей, но, например, в Firefox, еслислучается, что пользователь рассеянно наводит указатель мыши на панель навигации, иногда клавиша удаления приводит к тому, что пользователь возвращается назад, а обработчик никогда не получает ключ, так что я могу остановить распространение.
Есть лидругой элемент, к которому я должен привязываться?Есть ли лучший плагин для этого?Должен ли я просто избегать использования каких-либо ключей, привязанных к вещам, в обычных веб-браузерах?
Поскольку все больше и больше веб-приложений пытаются подражать своим коллегам на рабочем столе, создается впечатление, что это базовая функция, которая все больше будет требоваться веб-разработчикам.
РЕДАКТИРОВАТЬ: Я должен указать, что я уже использую e.stopPropagation()
и e.preventDefault()
.Основная проблема заключается в том, что иногда событие даже не передается связанной функции.Мне в основном интересно, нашел ли кто-нибудь «более высокий» элемент для привязки, кроме document
.Или есть альтернатива, о которой я даже не задумывался?Например, встраивание невидимого элемента Flash на страницу и последующую передачу всех ключей от него в Javascript (я не думаю, что это сработает).
Думаю, на данный момент я делаю что-то "стандартный, общеизвестный способ. "Я пытаюсь выяснить, существует ли какой-то нестандартный способ, о котором мало кто знает, может быть, кто-то в SO знает о: -).