我无法全屏退出

时间:2017-06-01 22:09:23

标签: javascript html5 fullscreen

我使用全屏API将文档正文设置为全屏。

现在,document.exitFullScreen的所有调用(带有适当的前缀)都会导致错误:

Uncaught TypeError: Illegal invocation
at HTMLDivElement.fs.onclick

该函数既不适用于事件处理程序,也不适用于普通的JS流程。

问题是什么,我该如何解决?文档很少,我没有找到任何其他人的错误。

2 个答案:

答案 0 :(得分:0)

输入或退出FullScreen是一种侵入式操作,因此,只应由用户操作(FullScreen API)直接触发。出于安全原因,任何其他内容都会导致此错误。

此问题讨论了如何在不违反此非法操作的情况下调用FullScreen。您可以根据他们的答案对解决方案进行编码以退出全屏:Getting fullscreen mode to my browser using jquery

这个问题的答案有一个没有jQuery的解决方案,这很酷。

答案 1 :(得分:0)

在全屏iframe中显示YouTube视频后,直接调用document.exitFullscreen()时遇到相同的错误。

对我来说,这是可行的:

let exitFullscreen = document.exitFullscreen || document.mozCancelFullScreen || document.webkitExitFullscreen || document.msExitFullscreen;
if (exitFullscreen) {
    exitFullscreen.bind(document)();
}

有必要将功能bind() document。否则,上下文可能是iframe,调用该函数是非法的。