В любом современном браузере вы можете использовать обработчик событий keydown
или keyup
, например, такой:
document.addEventListener("keydown", function(e) {
if (e.key === "F8" && e.shiftKey) {
e.preventDefault();
// ...Shift+F8 was pressed...
}
});
или с jQuery:
$(document).on("keydown", function(e) {
if (e.key === "F8" && e.shiftKey) {
e.preventDefault();
// ...Shift+F8 was pressed...
}
});
Работает ли этоможет зависеть от браузера, потому что разные браузеры резервируют разные комбинации клавиш.Он работает в Chrome и Firefox в моей копии Linux, а также в Edge в Windows 10 и IE11 в Windows 8. Обратите внимание, что вам нужно щелкнуть внутри окна, чтобы убедиться, что оно имеет фокус.
Вы пометили интернет-исследователь-8 .Если вам действительно нужно поддерживать этот действительно устаревший браузер, в котором нет addEventListener
, используйте версию jQuery, которая все еще поддерживает IE8 (или функцию hookEvent
из этого ответа , который работает в IE8 [или даже IE6]), а затем вместо e.key
используйте e.which || e.keyCode
и соответствующий код ключа.Причина, по которой у нас есть e.key
, заключается в том, что «соответствующий код клавиши» зависит от раскладки клавиатуры.На моей клавиатуре F8
- это 119
, поэтому:
// For obsolete browsers without `addEventListener`
hookEvent(document, "keydown", function(e) {
if ((e.which || e.keyCode) === 119 && e.shiftKey) {
e.preventDefault();
// ...Shift+F8 was pressed...
}
});
или использование более старой версии jQuery, поддерживающей IE8:
// For obsolete browsers
$(document).on("keydown", function(e) {
// ^---- if it's a REALLY old version, you might need `bind` instead of `on`
if ((e.which || e.keyCode) === 119 && e.shiftKey) {
e.preventDefault();
// ...Shift+F8 was pressed...
}
});