Chrome为cancelFullScreen和webkitCancelFullScreen返回undefined

 SOCHUNGKWAN 发布于 2023-02-13 19:21

我编写了一个简单的函数来在Web应用程序上切换全屏模式.该应用程序只需要在浏览器(最终在Kiosk模式部署)中运行,但似乎与一些奇怪的行为cancelFullScreenwebkitCancelFullScreen.

例如,这里是精简toggleFullScreen功能:

var _isFullscreen = false;

function toggleFullScreen()
{
    var doc = document.documentElement,
        state = _inFullscreen,
        requestFunc = (doc.requestFullScreen || doc.webkitRequestFullScreen),
        cancelFunc = (doc.cancelFullScreen || doc.webkitCancelFullScreen);

    _inFullscreen = !(state);

    (!state) ? requestFunc.call(doc) : cancelFunc.call(doc);
}

对于一些奇怪的原因,浏览器始终报告cancelFuncundefined,即使requestFunc工作正常.

任何人都可以解释这个的原因,以及一个可能的解决方案(不需要jQuery或类似的库插件)?

1 个回答
  • 在@Tom Chung的帮助下,在玩完之后,事实证明cancelFullScreen(同样webkitCancelFullScreen需要被召唤document,而requestFullscreen需要被召唤document.documentElement.

    因此,更新后的代码如下工作正常:

    function toggleFullScreen()
    {
     var doc = document.documentElement,
     state = (document.webkitIsFullScreen || document.isFullScreen),
     requestFunc = (doc.requestFullscreen || doc.webkitRequestFullScreen),
     cancelFunc = (document.cancelFullScreen || document.webkitCancelFullScreen);
    
     (!state) ? requestFunc.call(doc) : cancelFunc.call(document);
    }
    

    2023-02-13 19:22 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有