Как реализовать сочетание клавиш сочетания клавиш CTRL или SHIFT + <letter>через JavaScript? - PullRequest
7 голосов
/ 15 сентября 2008

Веб-приложение ASP.NET 2.0, как реализовать комбинацию сочетаний клавиш CTRL + Буква , предпочтительно с помощью JavaScript, чтобы сделать веб-приложение эргономически лучше? Как захватить события нескольких клавиш клавиатуры через JavaScript?

Ответы [ 4 ]

10 голосов
/ 25 октября 2008

Краткий ответ: вы используете Javascript для захвата события keydown и используете это событие для отключения функции. Соответствующие статьи:

Если вы используете библиотеку jQuery , я бы посоветовал вам взглянуть на плагин HotKeys для кросс-браузерного решения.

Я знаю, что это не ответ на оригинальный вопрос, но вот мой совет: не используйте сочетания клавиш в веб-приложении!

Почему? Потому что это может нарушить юзабилити, а не увеличивать его. Хотя общепринятым является то, что «горячие клавиши для одной клавиши» не используются в обычных браузерах (Opera удаляет их по умолчанию из своей последней основной версии), вы не можете понять, какие и какие комбинации клавиш используются различными браузерами. .

Гизмо делает хорошую мысль. Некоторая информация о часто используемых назначениях клавиш доступа доступна по http://www.clagnut.com/blog/193/.

Если вы измените клавиши доступа, вот несколько статей с хорошими советами о том, как это сделать:

И вы можете найти эту страницу используемых по умолчанию сочетаний клавиш и мыши Firefox полезной ( Другая версия с такой же информацией). Сочетания клавиш для Internet Explorer 7 и Internet Explorer 6 . Сочетания клавиш для Opera и Safari .

С большей вероятностью вы столкнетесь с проблемами с JAWS или другими программами чтения с экрана, которые добавляют больше сочетаний клавиш.

5 голосов
/ 15 сентября 2008

Ваша функция прослушивателя событий получает объект Event. Это имеет много полезной информации, включая свойства "altKey", "ctrlKey", "shiftKey" и "metaKey". Если какая-либо из клавиш-модификаторов удерживается при запуске этого события, соответствующему свойству присваивается значение true.

Это относится как к событиям клавиатуры, так и к событиям мыши (нажатие кнопки мыши и т. Д.). Обратите внимание, что если у вас есть прослушиватель события onkeydown, сама клавиша-модификатор вызовет событие.

window.onkeyup = function(e) {
  if (e.altKey) alert("Alt pressed");
  if (e.shiftKey) alert("Shift pressed");
}

Это проверено на Firefox 3, Windows XP.

2 голосов
/ 15 сентября 2008

Javascript поддерживает клавиши ctrl + alt + shift . Я полагаю, вы можете выяснить остальное. Link .

0 голосов
/ 15 сентября 2008

Я знаю, что это не ответ на оригинальный вопрос, но вот мой совет: не используйте сочетания клавиш в веб-приложении!

Почему? Потому что это может нарушить юзабилити, а не увеличивать его. Хотя общепринятым является то, что «горячие клавиши для одной клавиши» не используются в обычных браузерах (Opera удаляет их по умолчанию из своей последней основной версии), вы не можете понять, какие и какие комбинации клавиш используются различными браузерами. .

Более того, если ваши посетители используют настраиваемый браузер, такой как Firefox или Opera, существует высокий риск того, что они либо настроят свои собственные ярлыки, либо используют дополнительные подключаемые модули, определяющие некоторые дополнительные.

Имейте в виду, что веб-приложения зависят от браузера, и вы НИКОГДА не должны предполагать, что если он работает на вашем любимом браузере, он будет одинаково реагировать на приложение вашего друга.

...