有一个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(); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义