[prg] javascript. Как назначить гор.клавиши на нажатие клавиатурных клавиш
Здравствуйте, уважаемые!
Вот код, который не работает с элементом div, но отлично работает с
применением поля редактирования input, что мне очень не нравится.
Может как-то можно с использованием div, чтобы в любом месте нажал
горячие клавиши и получил какой-то результат?
<html>
<head>
<title>тест2 горячих клавиш</title>
<script>
function press(event) {
if (event.keyCode == 74) {
alert("нажата клавиша английская j или русская о");
}
if (event.keyCode == 75) {
alert("нажата клавиша английская k или русская л");
}
if (event.keyCode == 76) {
alert("нажата клавиша английская l или русская д");
}
}
</script>
</head>
<body>
<div onkeydown="press(event)">
</div>
</body></html>
с уважением
Грызунов Александр
Здравствуйте, Грызунов Александр.
С div у вас не работает, потому что вы обрабатываете на нём событие
onkeydown, происходящее в тот момент, когда происходит нажатие клавиш на
сфокусированном элементе, а обычный div не фокусируется в принципе.
Чтобы ваш код заработал, вам надо сделать div фокусируемым при помощи
атрибута tabindex="0", затем переместить на него фокус браузера (не одно и
тоже с фокусом программы экранного доступа), ну и нажать целевую
клавиатурную команду.
Впрочем, есть подозрения, что это не совсем то, чего вы добиваетесь.
Если вас интересует в принципе отлавливание нажатия каких-то клавиш на
странице без привязки к сфокусированным элементам, то надо всей странице
назначить обработчик событий и ловить это там:
document.addEventListener('keydown', function(event) {
// Обработка клавиш по скан-кодам или названиям
});
В общем посмотрите документацию по методам addEventListener и
removeEventListener.
Успехов. Никита.