我使用全屏API将文档正文设置为全屏。
现在,document.exitFullScreen
的所有调用(带有适当的前缀)都会导致错误:
Uncaught TypeError: Illegal invocation
at HTMLDivElement.fs.onclick
该函数既不适用于事件处理程序,也不适用于普通的JS流程。
问题是什么,我该如何解决?文档很少,我没有找到任何其他人的错误。
答案 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,调用该函数是非法的。