Я хотел бы вызвать событие onkeydown в теге видео. Но я вижу, что это не дает мне никаких результатов. Надеюсь, я понимаю и могу помочь мне... приветствия.
document.querySelector("video").onkeydown = function (e){
switch(e.keyCode){
case 65:
console.log('code 65')
break;
}
}
Это мой кодекс.
Если вы хотите, чтобы события клавиатуры реагировали после щелчка мышью на элементе <video>
, вам необходимо явно установить фокус ввода, чтобы ваша существующая логика могла обрабатывать события смены ключа.
document.getElementById("play-video").onmousedown = function (e){
console.log("focus now on video")
document.getElementById("play-video").focus()
}
Однако имейте в виду, что визуально элемент <video>
будет подсвечен для указания выбора, и если пользователь нажимает tab, тогда фокус будет циклически переключаться через выбираемые части элемента <video>
.
Одним из возможных решений могло бы стать подведение keydown
к document
в целом, поэтому вам не нужно беспокоиться о том, где фактический пользователь фокусирует нас на получении событий (хотя, если у вас есть другие поля ввода на странице, которые могут добавить дополнительные осложнения)
Проблема заключается в том, что эта строка console.log('code 65') break;
, Это вызовет неожиданный синтаксис.
В этой демонстрации выберите/сфокусируйте видео элемент с помощью клавиши tab
После этого он выбирается тогда, и только тогда событие keydown
может быть запущено на t
document.querySelector("video").onkeydown = function(e) {
switch (e.keyCode) {
case 65:
console.log('code 65'); //Changed here
break;c//Changed here
}
}
<video width="320" height="240" controls>
<source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
</video>
Если я прощу, вы должны сделать разрыв строки, не имея '; "Но Cuestien заключается в том, что фокус мыши, который вы должны быть в видео, и там, где вы должны активировать действие onkeydown.