Сочетание клавиш навигатора accesskey VS - PullRequest
8 голосов
/ 02 февраля 2012

Кажется, это повторяющийся сложный вопрос, но у меня до сих пор нет ни решения, ни обходного пути:

Есть ли способ перехватить клавиши доступа перед сочетанием клавиш?

Мне нужно использовать клавиши доступа в моем избранном IE навигатора, а также в FF, но я не хочу рассматривать существующие ярлыки как зарезервированные. В противном случае это не оставляет много возможностей (в настоящее время я использую только цифры).

Примечание: под ключом доступа я имею в виду атрибут accesskey html.

Есть идеи? Flash-приложения могут это сделать, а как насчет JavaScript?


Например, вот доступный элемент управления:
<button onclick="alert('Hello');" accesskey="F">Alt+F to activate</button>

Когда я пытаюсь его активировать, я просто открываю Файл меню: '(

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

Джон Резиг (создатель jQuery) работает над аддоном «горячей клавиши» для jQuery, который должен делать то, что вы ищете.«Вопрос jQuery», и добавление фреймворка для чего-то «маленького» не является идеальным, но оно должно предложить решение.С другой стороны, вы всегда можете посмотреть, как он это сделал для вдохновения.

0 голосов
/ 05 августа 2015

Это, очевидно, будет зависеть от браузера. Для «большой тройки»:

  • Firefox: ярлыки меню используют Alt , ярлыки "accesskey" используют Shift Alt , поэтому конфликта нет.
  • Google Chrome: оба типа ярлыков используют Alt , а ярлыки меню имеют приоритет, , но , если существует конфликт, ярлыки "accesskey" используют Shift Alt , поэтому они все еще доступны. См. Мой ответ на Отключение функций Alt (ярлыки) в Google Chrome для примера.
  • Internet Explorer: оба типа ярлыков используют Alt , а ярлыки "accesskey" имеют приоритет - именно то, что вы хотите: -).

Короче говоря: Нет, в Javascript нет способа переопределить поведение браузера (и, возможно, это было бы уязвимостью безопасности), но у всех браузеров есть способы для обработки этих конфликтов.

...