河畔的风

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  62 随笔 :: 0 文章 :: 0 评论 :: 15413 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

有一个pad端需求,要求进到项目之后在浏览器中将整个项目全屏,

复制代码
    window.onload = () => {
        let element = document.documentElement
        if (element.requestFullscreen) {
                element.requestFullscreen()
            } else if (element.msRequestFullscreen) { // 兼容ie
                element.msRequestFullscreen()
            } else if (element.mozRequestFullScreen) { // 兼容火狐
                element.mozRequestFullScreen()
            } else if (element.webkitRequestFullscreen) { // 兼容chrome和safari
                element.webkitRequestFullscreen()
            }
        }
    }
复制代码

 

是在main.js中写的script标签中实现的

会报错,Failed to execute ‘requestFullscreen’ on ‘Element’: API can only be initiated by a user gesture.
原因
在于需要用户点击按钮触发事件,不允许onload触发,会用安全性问题。
可能本来这个需求也有点扯淡

 通过判断元素的requestFullscreen函数是否存在与document.fullscreenEnabled是否为True判断浏览器是否支持全屏或启用全屏,兼容写法为 

复制代码
    function supportfull(){
         var requestFullscreen =
             document.body.requestFullscreen ||
             document.body.webkitRequestFullscreen ||
             document.body.mozRequestFullScreen ||
             document.body.msRequestFullscreen;
         var fullscreenEnabled =
             document.fullscreenEnabled ||
             document.mozFullScreenEnabled ||
             document.webkitFullscreenEnabled ||
             document.msFullscreenEnabled;
         return !!(requestFullscreen && fullscreenEnabled);
     }
复制代码

 

 

    判断当前是否全屏

    通过document.fullscreenElement属性是否为空来判断,对于webkit内核的浏览器,还可以通过document.webkitIsFullScreen属性来判断,以下为兼容写法

1
2
3
function isfull() {
    return !!(document.webkitIsFullScreen || fullele());
}

    退出全屏

 通过document.exitFullscreen方法来退出全屏,对于不同内核的浏览器,方法名除了前缀不一样外,其他地方也不一样,以下为兼容写法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function exitfull() {
    if (document.exitFullscreen) {
        document.exitFullscreen();
    }
    else if (document.mozCancelFullScreen) {
        document.mozCancelFullScreen();
    }
    else if (document.webkitExitFullscreen) {
        document.webkitExitFullscreen();
    }
    else if (document.msExitFullscreen) {
        document.msExitFullscreen();
    }
}

  

  


posted on   河畔的风  阅读(130)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示