Я пытаюсь поймать как Ctrl - S и Cmd - S в браузерах для кросс-OS Совместимость моего веб-приложения. Я увидел нить о том, как сделать это здесь: jquery keypress event for cmd+s AND ctrl+sНе удается поймать Cmd-S на Chrome на Mac
У меня есть следующий фрагмент кода в моем коде:
$(document).keypress(function(event) {
if (event.which == 115 && (event.ctrlKey||event.metaKey)|| (event.which == 19)) {
event.preventDefault();
save();
return false;
}
return true;
});
где save()
является функция JavaScript, которая будет посылать запрос AJAX в будущем, но только имеет alert('Saved!');
.
Однако, несмотря на это улавливает Ctrl - S, он не ловит Cmd - S на Chrome, а не просто открыть диалог сохранения веб-страницы, как обычно. Я видел, что у кого-то на этой странице была такая же проблема, но я не видел решения для этого.
Заранее благодарен!
отметить также, 'событие нажатия клавиши не охватывается какой-либо официальной спецификации, фактическое поведение встречается при его использовании может отличаться в разных браузерах, версии браузеров и platforms.' (от официальный [jQuery doc для 'keypress'] (https://api.jquery.com/keypress/)). Возможно, вы захотите рассмотреть возможность использования 'keypress' вообще. – filoxo
@filoxo Спасибо, что сообщили мне :) –