我需要知道用戶在全屏模式下觀看HTML5視頻時何時按下退出鍵。不幸的是,文檔中的任何配置的監聽器都不適用,因爲當用戶以全屏模式觀看HTML5視頻時,系統焦點在本地視頻播放器而不是瀏覽器。如何在全屏模式下觀看HTML5視頻時捕獲鍵盤事件?
另一種方法是偵聽焦點是否從原生視頻播放器恢復到瀏覽器,但我不確定如何捕獲該視頻。
document.addEventListener('keydown', function (e) { console.log(e.keyCode); }, false);
以上成功記錄到控制檯時,只要我在瀏覽器中按鍵。只要HTML5視頻進入全屏模式,瀏覽器顯然不能再將鍵碼記錄到控制檯。
我想要做的是在退出全屏模式後從一個用戶界面切換到另一個用戶界面。
編輯
Potench的答案是爲出發點,這就是爲什麼我接受它作爲回答,儘管要注意以下幾點有用:
- 它只能在WebKit瀏覽器。 :-)
- 正如最初定義的那樣,因爲
video.webkitDisplayingFullscreen
是true
,只要resize
事件觸發,它就不起作用。
我得到這個工作 - 只在WebKit瀏覽器 - 通過充分利用動畫幀不斷監視值的變化:
var onFrame, isVideoFullscreen;
onFrame = window.requestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (fn) {
setTimeout(fn, 1000/60);
};
isVideoFullscreen = false;
function frame() {
if (!isVideoFullscreen && video.webkitDisplayingFullscreen) {
// entered fullscreen mode
isVideoFullscreen = true;
} else if (isVideoFullscreen && !video.webkitDisplayingFullscreen) {
// exited fullscreen mode
isVideoFullscreen = false;
}
onFrame(frame);
}
onFrame(frame);
你試過聽鍵盤事件的窗口? – potench
@potench - 是的。這沒有任何不同。 – natlee75