javascript - 结合请求全屏和 F11

标签 javascript html fullscreen

我有一个带有按钮的页面,允许用户将页面设置为全屏。我使用 requestFullscreen(实际上是 webkitRequestFullScreen,因为我在 Chrome 中进行测试,但这个问题普遍适用)。所有这一切都很好。

但是,用户也可以使用 F11 进入全屏,这会导致两个问题:

  1. F11 不影响 fullscreenElement 的值,即使在使用 F11 进入全屏后该值仍为 null
  2. exitFullscreen 不能用于反转 F11 设置的全屏(尽管反转确实有效 - F11 可以关闭使用 requestFullscreen 设置的全屏)。

有没有办法结合 F11 功能和全屏 API?

最佳答案

您可以在应用程序中拦截 F11 键盘事件并改为调用 requestFullscreen API。用户应该看不出他们使用 F11、按钮、链接等有什么区别。

var isFullScreen = false;
function handleWindowKeydownEvent(event = {}) {
    if(event.code === 'F11') {
        event.preventDefault();
        if(isFullScreen) {
            isFullScreen = false;
            window.document.exitFullscreen().catch((err) => {
                console.log(err);
            });
        } else {
            isFullScreen = true;
            window.document.documentElement.requestFullscreen().catch((err) => {
                console.log(err);
            });
        }
    }
}
window.addEventListener('keydown', handleWindowKeydownEvent);

关于javascript - 结合请求全屏和 F11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51114885/

相关文章:

javascript - 实例化 JavaScript 模块模式

javascript - phantomjs 总是返回在特定网站上找不到的页面

javascript - 使用颜色选择器使用 jquery 更改颜色?

javascript - 为什么 "[] == true"和 "![] == true"都评估为假?

javascript - 带有选项卡的 HTML、CSS 和 javascript 编辑器?

html - margin-bottom 不适用于 div

css - HTML 5 全屏视频在移动设备上溢出几个像素

javascript - jQuery each 和附加点击事件

c# - 全屏 c# windows 窗体覆盖所有显示器

javascript - 在 Safari 5.1.2 中传递 Element.ALLOW_KEYBOARD_INPUT 时 webkitRequestFullScreen 失败