Эта ссылка запускает блокнот jupyter.

Когда страница загружена,
набрав h , запустит модальный режим («Сочетания клавиш»)

, набрав f ,запустить еще один модальный режим "Найти и заменить"

Как обеспечить поддержку страницы для набора текста с клавиатуры для запуска модального режима?
Это ссылка дает некоторое вдохновение внутри модального.
Это и это дают примеры об одном элементе, хотя я прошу подход к прослушиванию нажатия клавишсобытие на всей странице
вопрос
Вот мой код, который пытается прослушать любое нажатие клавиши
<!DOCTYPE html>
<html>
<head>
<script>
i = 0;
$(document).querySelector('#myDiv').addEventListener('keyup', function (e) {
$("span").text(i += 1);
})
</script>
</head>
<body>
<div class="container" id="mydiv" tabindex="0">
<p>Keypresses: <span>0</span></p>
</div>
</body>
</html>
Как заставить этот код работать?