【问题标题】:I can't exit full screen我无法退出全屏
【发布时间】:2020-10-07 16:46:47
【问题描述】:

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

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

Uncaught TypeError: Illegal invocation
at HTMLDivElement.fs.onclick

该函数既不能在事件处理程序中工作,也不能在正常的 JS 流程中工作。

有什么问题,我该如何解决?文档太少了,我还没有发现其他人有这个错误。

【问题讨论】:

  • 为什么这被否决了?
  • 不是我,但我猜这是因为您的问题缺少上下文,可能是调用exitFullScreen 的代码。但我的回答是假设问题与调用代码的位置有关。

标签: javascript html fullscreen


【解决方案1】:

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

对我来说这是有效的:

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

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

【讨论】:

  • 感谢您的帮助...exitFullscreen.call(document) 也可以使用
【解决方案2】:

进入或退出全屏是一种侵入性操作,因此只能由用户操作直接触发 (FullScreen API)。出于安全原因,其他任何情况都会导致此错误。

这个问题讨论了如何调用 FullScreen 而不会遇到这个非法操作。您可以根据他们的回答编写退出全屏的解决方案:Getting fullscreen mode to my browser using jquery

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 2019-04-30
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多