检测对 HTML5 视频的关注
Detect focus on HTML5 video
与使用 youtube 时一样,如果您单击 "play" 或 "pause",焦点将在视频上,使用 spacebar
将暂停或播放视频。
在同一行中,我想在播放 HTML5 视频后阻止 spacebar
操作。
为此,我试图检测聚焦元素,但视频元素似乎没有以相同的方式获得 focus
事件。
我试过使用 jQuery :
$(':focus');
平原 Javascript:
document.activeElement
None 成功。
向您的视频元素添加事件侦听器,并在播放事件时将焦点放在页面上的其他(可聚焦)元素上,例如什么都不做的虚拟按钮
var video=document.getElementById("MyVideo");
video.addEventListener('play', function () {
document.getElementById("myDummyButton").focus();
});
这会在视频播放后立即将焦点从您的视频元素转移到虚拟按钮。您也可以对暂停事件执行相同的操作。
并小心地将按钮放置在视频元素附近,因为如果将按钮放置在屏幕下方页面下方的某处,聚焦它会导致页面滚动。
另请记住,并非所有类型的元素都是可聚焦的。
这样使用:
document.getElementByID("video").onfocus = function(){}
您可以添加按键事件处理程序,以便过滤掉视频元素上的按键事件。
video.addEventListener("keydown", function(evt) {
/* check the key you don't want and if hit call: */
evt.preventDefault();
}, false);
如果尚未指定 tabindex 属性,您可以强制元素获得焦点
<video tabindex="1" /* etc. */ ></video>
与使用 youtube 时一样,如果您单击 "play" 或 "pause",焦点将在视频上,使用 spacebar
将暂停或播放视频。
在同一行中,我想在播放 HTML5 视频后阻止 spacebar
操作。
为此,我试图检测聚焦元素,但视频元素似乎没有以相同的方式获得 focus
事件。
我试过使用 jQuery :
$(':focus');
平原 Javascript:
document.activeElement
None 成功。
向您的视频元素添加事件侦听器,并在播放事件时将焦点放在页面上的其他(可聚焦)元素上,例如什么都不做的虚拟按钮
var video=document.getElementById("MyVideo");
video.addEventListener('play', function () {
document.getElementById("myDummyButton").focus();
});
这会在视频播放后立即将焦点从您的视频元素转移到虚拟按钮。您也可以对暂停事件执行相同的操作。
并小心地将按钮放置在视频元素附近,因为如果将按钮放置在屏幕下方页面下方的某处,聚焦它会导致页面滚动。 另请记住,并非所有类型的元素都是可聚焦的。
这样使用:
document.getElementByID("video").onfocus = function(){}
您可以添加按键事件处理程序,以便过滤掉视频元素上的按键事件。
video.addEventListener("keydown", function(evt) {
/* check the key you don't want and if hit call: */
evt.preventDefault();
}, false);
如果尚未指定 tabindex 属性,您可以强制元素获得焦点
<video tabindex="1" /* etc. */ ></video>