Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. $(window).keypress(function(event) {
if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true;
alert("Ctrl-S pressed");
event.preventDefault();
return false;
});
Коды клавиши могут отличаться между браузерами, таким образом, Вы, возможно, должны проверить на больше, чем всего 115.
@Eevee: Поскольку браузер становится домом для более богатой и более богатой функциональности и начинает заменять настольные приложения, это просто не собирается быть опцией воздержаться от использования сочетаний клавиш. Богатый и интуитивный набор Gmail команд клавиатуры способствовал моей готовности отказаться от Outlook. Сочетания клавиш в Todoist, Google Reader и Google Calendar все делают мою жизнь очень, намного легче ежедневно.
Разработчики должны определенно бояться переопределять нажатия клавиш, которые уже имеют значение в браузере. Например, текстовое поле WMD, в которое я ввожу необъяснимо, интерпретирует Ctrl + Del , поскольку "Блок цитирования", а не "удаляет слово вперед". Мне любопытно, если будет стандартный список где-нибудь "безопасных для браузера" ярлыков, которые застройщики сайта могут использовать и это, то браузеры примут на себя обязательство избегать в будущих версиях.
Я хотел бы, чтобы веб-приложения не переопределили мои сочетания клавиш по умолчанию, честно. Ctrl + S уже делает что-то в браузерах. Наличие того изменения резко в зависимости от сайта, который я просматриваю, является подрывным и срыв, не говоря уже о часто багги. У меня был налет сайтов Ctrl + Вкладка , потому что это выглядело одинаково как Ctrl + я , и разрушение моей работы над сайтом и препятствование тому, чтобы я переключил вкладки, как обычно.
, Если Вы хотите сочетания клавиш, используйте эти accesskey
атрибут. Не повреждайте существующую функциональность браузера.
Вы могли пользоваться библиотека ярлыка для обработки браузера определенный материал.
shortcut.add("Ctrl+S",function() {
alert("Hi there!");
});
Мне нравится этот небольшой плагин . Однако ему нужно немного больше кроссбраузерности.
пример:
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/#