HTML5 – 防止全屏模式

我正在使用带有嵌入式YouTubevideo的Fullscreen API来检测浏览器窗口是否已进入全屏模式。 我的工作很棒。

我想做的是防止出现进入全屏模式的默认行为。 我想放入自己的全屏模式逻辑,以便我可以在YouTube播放器上叠加DOM元素。 目前,我可以在输入后立即退出全屏模式,但这会给用户带来糟糕和混乱的体验。

一种解决方法是使用YouTube的播放器API参数删除全屏按钮,并使用我自己的逻辑添加我自己的按钮,但这并不理想,因为用户仍然可以双击YouTube播放器使其全屏显示。

这是我检测浏览器全屏状态的代码:

$(document).on("fullscreenchange webkitfullscreenchange msfullscreenchange mozfullscreenchange", function(event) { onFullScreenChange(event); }); function onFullScreenChange(event) { var fullScreenElement = document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement; var isFullscreen = !!fullScreenElement; console.log("In fullscreen mode?", isFullscreen); if (isFullscreen === true) { // TODO: Prevent the browser from entering full screen mode. These three lines don't prevent that behavior event.stopImmediatePropagation(); event.stopPropagation(); event.preventDefault(); return false; // The commented code below works. Ideally, we'd want to prevent the browser from even entering full screen mode //document.webkitExitFullscreen(); } } 

使用preventDefault()stopPropagation()stopImmediatePropagation()都不起作用,所以我陷入了困境。 如果确实可以,我该如何阻止浏览器进入全屏模式?

使用youtube iframe api

禁用全屏按钮: fs:0

禁用键盘控件: disablekb :1

加载播放器后,删除全屏选项:

 // Get DOM video player not YT videoplayer videoPlayer = document.getElementById('player'); // don't allow full screen videoPlayer.allowFullscreen = false; 

使用Fullscreen_API在DOM播放器(在我们的示例中为iframe)上全屏触发

 videoPlayer.requestFullScreen() 

如果按下ESC键或video结束,将全屏离开(自定义事件处理)

JsFiddle 工作示例:

      

这就是我做的:)

   

希望这个帮助:)

Interesting Posts