Мои пользователи хотели бы иметь возможность нажать Ctrl+, Sчтобы сохранить форму. Есть ли хороший кросс-браузерный способ захвата комбинации клавиш Ctrl+ Sи отправки моей формы?
Приложение построено на Drupal, поэтому jQuery доступен.
javascript
jquery
ceejayoz
источник
источник
keydown
вместоkeypress
хромаЭто работает для меня (используя jquery) для перегрузки Ctrl+ S, Ctrl+ Fи Ctrl+ G:
источник
window.addEventListener(
вместо$(window).bind(
else if
не будет работать, поскольку исходноеif
утверждение уже будет оценено как истинное. Вы должны будете поместить свой код перед исходнымif
оператором, превратив оригинал вelse if
.Вы можете использовать библиотеку ярлыков для обработки специфических для браузера вещей.
источник
Это решение jQuery работает для меня в Chrome и Firefox для Ctrl+ Sи Cmd+ S.
источник
e.key
вместоe.which
;Этот работал для меня на Chrome ... по какой-то причине
event.which
возвращает заглавную S (83) для меня, не уверен почему (независимо от состояния блокировки шапки), поэтому я использовалfromCharCode
иtoLowerCase
просто чтобы быть в безопасностиЕсли кто-то знает, почему я получаю 83, а не 115 , я буду рад услышать, а также, если кто-нибудь протестирует это в других браузерах, я буду рад услышать, работает ли он или нет
источник
Я объединил несколько вариантов поддержки FireFox, IE и Chrome. Я также обновил его, чтобы лучше поддерживать Mac
источник
Честно говоря, я бы хотел, чтобы веб-приложения не переопределяли мои стандартные сочетания клавиш. Ctrl+ Sуже что-то делает в браузерах. Это внезапное изменение в зависимости от сайта, который я просматриваю, разрушительно и разочаровывает, не говоря уже о том, что оно часто глючит. У меня был угон сайтов Ctrl+, Tabпотому что он выглядел так же, как Ctrl+ I, что разрушало мою работу на сайте и мешало мне переключать вкладки как обычно.
Если вы хотите сочетания клавиш, используйте
accesskey
атрибут. Пожалуйста, не нарушайте существующие функции браузера.источник
@Eevee: Поскольку браузер становится домом для все более и более функциональных функций и начинает заменять настольные приложения, он просто не будет возможностью отказаться от использования сочетаний клавиш. Богатый и интуитивно понятный набор клавиатурных команд Gmail способствовал моей готовности отказаться от Outlook. Сочетания клавиш в Todoist, Google Reader и Google Calendar - все это делает мою жизнь намного проще в повседневной жизни.
Разработчики должны определенно быть осторожными, чтобы не отменять нажатия клавиш, которые уже имеют значение в браузере. Например, текстовое поле для оружия массового поражения, которое я печатаю необъяснимым образом, интерпретирует Ctrl+ Delкак «Blockquote», а не «удалить слово вперед». Мне любопытно, есть ли где-нибудь стандартный список «безопасных для браузера» ярлыков, которые разработчики сайтов могут использовать, и которые браузеры обязуются избегать в будущих версиях.
источник
Это актуальная версия ответа @ AlanBellows с заменой
which
наkey
. Он также работает даже при сбое в работе с заглавной клавишей Chrome (если вы нажмете Ctrl+, Sвместо s будет отправлено заглавное S). Работает во всех современных браузерах.источник
Это было моё решение, которое намного легче читать, чем другие предложения, может легко включать другие комбинации клавиш и было протестировано на IE, Chrome и Firefox:
источник
String.fromCharCode
. Хотя у Mac нет управляющего ключа. Проверьте на ключ команды сevt.metaKey
. Он возвращаетсяtrue
для Cmd на Mac и Win на Windows.Мне нравится этот маленький плагин . Это требует немного больше кроссбраузерности, хотя.
источник
Это должно работать (адаптировано с https://stackoverflow.com/a/8285722/388902 ).
источник
пример:
использование
ссылка для скачивания: http://www.openjs.com/scripts/events/keyboard_shortcuts/#
источник
На вопрос Alan Bellows:! (E.altKey) добавлено для пользователей, которые используют AltGrпри наборе текста (например, Польша). Без этого нажатие AltGr+ Sдаст тот же результат, что и Ctrl+S
источник
Этот плагин, сделанный мной, может быть полезным.
Plugin
Вы можете использовать этот плагин, который вы должны предоставить ключевые коды и функции для запуска, как это
В коде я показал, как выполнить для Ctrl+ S. По ссылке вы получите подробную документацию. Плагин находится в разделе JavaScript Code of My Pen на Codepen.
источник
Я решил свою проблему в IE , используя
alert("With a message")
для предотвращения поведения по умолчанию:источник