网易首页 > 网易号 > 正文 申请入驻

为什么你的全屏页面两分钟就黑屏?浏览器留了三个坑

0
分享至

一个幻灯片、一个视频播放器、一块展厅大屏、一个课堂投影上的计时器——只要浏览器顶部的标签页和地址栏还在,这些东西看起来都像没做完。前端开发者迟早会接到同一句需求:能不能占满整个屏幕?

浏览器其实自带答案,就是 Fullscreen API。但真正上线时,它总会咬你一口:用户手势限制、Safari 的前缀、死活不配合的 iPhone,以及你精心准备的全屏体验跑到第二分钟屏幕自己睡着了。


它只给你三样东西

Fullscreen API 很小,日常用到的就三个成员。第一个是 element.requestFullscreen(),请求浏览器用整块屏幕显示这个元素及其子元素,返回一个 Promise。第二个是 document.exitFullscreen(),退出全屏,同样返回 Promise。第三个是 document.fullscreenElement,指向当前处于全屏的元素,没有则为 null——这是判断"现在是不是全屏"的唯一可信来源。

此外 document 上还有两个事件:fullscreenchange 在全屏进入或退出时触发,fullscreenerror 在请求失败时触发。

有一点常让人意外:你可以让任意元素全屏,不只是整个页面。把一个 div 全屏,就只有这个 div 铺满屏幕,文档里其他内容都被它挡在后面。想让整个页面全屏,得对 document.documentElement(也就是 html 元素)调用这个方法。

切换全屏,以及那个绕不开的手势规则

最简单的可用形态是一个按钮,在进入和退出之间切换。判断 document.fullscreenElement 是否为空,为空就请求全屏,不为空就退出。两个方法都返回 Promise,所以可以 await,等过渡真正结束再执行后续代码。

但这两个调用都可能被拒绝。比如文档不被允许进入全屏,或者在没有任何元素全屏时调用 exitFullscreen()。实际代码里应该用 try/catch 包起来,而不是让一个未处理的 rejection 掉进控制台。

接下来是第一个坑,也是 Stack Overflow 上最容易让人困惑的问题:你没法自动进入全屏。页面加载时不行,定时器触发时不行,响应网络事件时也不行。

requestFullscreen() 只在页面拥有规范所说的"瞬时激活"时才有效——也就是用户真正与页面交互(点击、触摸、按键)之后的一小段窗口期。窗口之外,Promise 会被拒绝,多数浏览器会提示"API 只能由用户手势发起"。

这是有意设计的。没有这条限制,任何页面都能在你打开它的瞬间劫持整块屏幕,而这正是钓鱼页面最想干的事。

落到代码上就是两条:始终在绑定用户输入的事件处理器里触发全屏,比如 click、keydown、pointerup;不要在 requestFullscreen() 之前 await 一个耗时操作。如果先 await fetch(...),等你再请求全屏时,激活窗口可能已经过期。要么先请求全屏再做慢活,要么就接受失败。

一个很自然的做法是让键盘快捷键承担和按钮一样的工作。监听 keydown,如果用户正在输入框里打字就跳过,按下 F 键时阻止默认行为并调用切换函数。

这里有两个我第一次写时踩过的细节值得转述。第一,让全屏区域本身可被键盘聚焦:给它 tabindex="0",并把 Enter 和 Space 当作点击同等对待,否则键盘用户面对的是一个没人告诉过他的按钮。第二,想清楚你的快捷键会不会和页面本身的功能撞车。有个"黑客打字机"页面,任意按键都会吐出假的终端输出,包括 F。上线头几天,用户疯狂敲键盘"入侵"时,每按一次 F 就会掉出全屏。修复只有一行:在那个页面上,F 只负责进入全屏,退出交给 Esc。

说到 Esc:你不需要自己处理它。所有浏览器都会用 Esc 退出全屏,而且你无法阻止。这是一条安全逃生通道。你能做的是对它做出反应。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
姐姐名古屋载誉归来何锦櫶染黄发接机 盼下次大赛金童玉女一起闪耀

姐姐名古屋载誉归来何锦櫶染黄发接机 盼下次大赛金童玉女一起闪耀

劲爆体坛
2026-10-01 09:55:03
“穿个底裤就出门了?”宝妈穿瑜伽短裤接孩子,网友:我一个女的都不好意看!

“穿个底裤就出门了?”宝妈穿瑜伽短裤接孩子,网友:我一个女的都不好意看!

林林先生
2026-10-02 07:45:07
维蒂尼亚:主教练的工作已经起作用了,效果非常明显

维蒂尼亚:主教练的工作已经起作用了,效果非常明显

懂球帝
2026-10-02 05:40:12
朝鲜核爆后的隐患越来越重:地下六次核试验对中国也产生了影响

朝鲜核爆后的隐患越来越重:地下六次核试验对中国也产生了影响

莫地方
2026-10-01 20:01:56
80岁黄百鸣狱中表现良好获减刑,曝已低调出狱与家人共度中秋

80岁黄百鸣狱中表现良好获减刑,曝已低调出狱与家人共度中秋

动物奇奇怪怪
2026-10-01 12:11:41
哈佛大学研究发现:人生回报率最高的,是每天坚持这两个习惯

哈佛大学研究发现:人生回报率最高的,是每天坚持这两个习惯

心理观察局
2026-07-01 07:37:28
"45秒,全没了!"柏林宣布退出申办,奥运会从顶级IP沦为财政噩梦

"45秒,全没了!"柏林宣布退出申办,奥运会从顶级IP沦为财政噩梦

云居历史
2026-09-28 15:40:23
空姐被逼下跪求踹后续:东航发声明,知情人曝内幕,本人已上班

空姐被逼下跪求踹后续:东航发声明,知情人曝内幕,本人已上班

寒士之言本尊
2026-10-01 17:40:08
1988年援藏干部叛逃者周述武临终遗言,死后务必将骨灰送回故乡

1988年援藏干部叛逃者周述武临终遗言,死后务必将骨灰送回故乡

舆图看世界
2026-10-01 09:30:11
一夫一妻制逐渐难维持!社会学家分析:未来3种模式将成为主流

一夫一妻制逐渐难维持!社会学家分析:未来3种模式将成为主流

王二哥老搞笑
2026-09-24 07:26:29
国乒新情报:10月2日,孙颖莎未退赛!国乒2人一轮游,今天抽签!

国乒新情报:10月2日,孙颖莎未退赛!国乒2人一轮游,今天抽签!

老嗮说体育
2026-10-02 07:19:58
无敌! 9月车企销量 比亚迪46万 吉利29万 长城11万 零跑10万 鸿蒙3.7万

无敌! 9月车企销量 比亚迪46万 吉利29万 长城11万 零跑10万 鸿蒙3.7万

阿芒娱乐说
2026-10-02 01:24:09
部分葡萄牙球迷看台拼字声援:热苏斯,我们爱你

部分葡萄牙球迷看台拼字声援:热苏斯,我们爱你

懂球帝
2026-10-02 04:06:36
贺子珍始终坚信,朱道来就是自己在战乱中失散的儿子;可朱道来后来却坦言,当年他并没有把全部实情说出来。

贺子珍始终坚信,朱道来就是自己在战乱中失散的儿子;可朱道来后来却坦言,当年他并没有把全部实情说出来。

人生录
2026-10-01 16:39:34
31岁老板娘晒纹身:3个孩子侧脸加老公首字母,藏了5年

31岁老板娘晒纹身:3个孩子侧脸加老公首字母,藏了5年

时光慢旅人
2026-10-01 00:36:11
炸锅!29年首次黑八诞生,自由人淘汰山猫,韩旭登顶亚洲得分榜

炸锅!29年首次黑八诞生,自由人淘汰山猫,韩旭登顶亚洲得分榜

体育大朋说
2026-10-01 12:24:30
武汉十一长江烟花秀背后的经济大账

武汉十一长江烟花秀背后的经济大账

匹夫来搞笑
2026-10-02 01:22:26
华为Mate90三款怎么选?5999元起,别交智商税

华为Mate90三款怎么选?5999元起,别交智商税

小蜜情感说
2026-10-01 04:46:09
万万没想到!今年国庆节降价最狠的5种商品,香烟居然也榜上有名

万万没想到!今年国庆节降价最狠的5种商品,香烟居然也榜上有名

你在偷看谁
2026-10-01 20:37:34
苹果 iOS 26.7.1正式版已推送:更新关10个设置,系统流畅度暴涨20%

苹果 iOS 26.7.1正式版已推送:更新关10个设置,系统流畅度暴涨20%

辉哥说动漫
2026-10-01 07:18:49
2026-10-02 08:47:00
全栈遛狗员
全栈遛狗员
白天跟需求对线,晚上在小区遛狗。
186文章数 119关注度
往期回顾 全部

科技要闻

“分手”15天后,华为与赛力斯签约新五年

头条要闻

有关伊朗制裁问题 中国在联大投下反对票

头条要闻

有关伊朗制裁问题 中国在联大投下反对票

体育要闻

“今天的表现,我们可以昂首离开球场”

娱乐要闻

奚梦瑶晒四太豪礼!22只龙凤镯近300万

财经要闻

智谱发上亿Token 能挽回开发者信任吗?

汽车要闻

2027款极氪001将于明年一季度上市 现款猎装同步推新配色

态度原创

教育
家居
数码
时尚
手机

教育要闻

六年级竞赛题:难住不少真学霸

家居要闻

2026建博会(广州) 公装联探展交流活动

数码要闻

8月扫地机器人均价创年内低点!石头科技线上销额登顶

在米兰,用时装唤醒内心的自我

手机要闻

荣耀Magic9用户反馈盘点,想种草的可以看看

无障碍浏览 进入关怀版