Лучший метод перекрестного браузера для получения CTRL+S с JQuery?

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

154
задан Fabrizio 15 September 2017 в 20:47
поделиться

6 ответов

$(window).keypress(function(event) {
    if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true;
    alert("Ctrl-S pressed");
    event.preventDefault();
    return false;
});

Коды клавиши могут отличаться между браузерами, таким образом, Вы, возможно, должны проверить на больше, чем всего 115.

120
ответ дан balupton 23 November 2019 в 21:58
поделиться

@Eevee: Поскольку браузер становится домом для более богатой и более богатой функциональности и начинает заменять настольные приложения, это просто не собирается быть опцией воздержаться от использования сочетаний клавиш. Богатый и интуитивный набор Gmail команд клавиатуры способствовал моей готовности отказаться от Outlook. Сочетания клавиш в Todoist, Google Reader и Google Calendar все делают мою жизнь очень, намного легче ежедневно.

Разработчики должны определенно бояться переопределять нажатия клавиш, которые уже имеют значение в браузере. Например, текстовое поле WMD, в которое я ввожу необъяснимо, интерпретирует Ctrl + Del , поскольку "Блок цитирования", а не "удаляет слово вперед". Мне любопытно, если будет стандартный список где-нибудь "безопасных для браузера" ярлыков, которые застройщики сайта могут использовать и это, то браузеры примут на себя обязательство избегать в будущих версиях.

4
ответ дан Fabrizio 23 November 2019 в 21:58
поделиться

Я хотел бы, чтобы веб-приложения не переопределили мои сочетания клавиш по умолчанию, честно. Ctrl + S уже делает что-то в браузерах. Наличие того изменения резко в зависимости от сайта, который я просматриваю, является подрывным и срыв, не говоря уже о часто багги. У меня был налет сайтов Ctrl + Вкладка , потому что это выглядело одинаково как Ctrl + я , и разрушение моей работы над сайтом и препятствование тому, чтобы я переключил вкладки, как обычно.

, Если Вы хотите сочетания клавиш, используйте эти accesskey атрибут. Не повреждайте существующую функциональность браузера.

5
ответ дан Fabrizio 23 November 2019 в 21:58
поделиться

Вы могли пользоваться библиотека ярлыка для обработки браузера определенный материал.

shortcut.add("Ctrl+S",function() {
    alert("Hi there!");
});
33
ответ дан Aliaksandr Sushkevich 23 November 2019 в 21:58
поделиться

Мне нравится этот небольшой плагин . Однако ему нужно немного больше кроссбраузерности.

1
ответ дан 23 November 2019 в 21:58
поделиться

пример:

shortcut.add("Ctrl+c",function() {
    alert('Ok...');
}
,{
    'type':'keydown',
    'propagate':false,
    'target':document
});

использование

<script type="text/javascript" src="js/shortcut.js"></script>

ссылка для загрузки: http://www.openjs.com/scripts/events/keyboard_shortcuts/#

0
ответ дан 23 November 2019 в 21:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: