用户点击全屏按钮后将偏好存入 localStorage,页面加载时读取并同步UI状态,监听 fullscreenchange 事件实时更新存储,确保状态一致且符合浏览器手势触发要求。
用户点击全屏按钮后,把偏好存进 localStorage,下次加载页面时读取并自动应用全屏状态(或还原为非全屏),就能实现“记忆”效果。关键不是只存状态,而是结合页面生命周期,在合适时机读、写、响应。
当用户手动触发全屏(比如点“全屏”按钮)或退出全屏(按 ESC 或点“退出全屏”)时,把当前是否处于全屏状态存为 boolean,用有意义的键名:
localStorage.setItem('mediaPlayerFullscreen', 'true') 表示用户偏好全屏'false' 表示偏好窗口模式(注意:存字符串更稳妥,避免类型混淆)true/True 等歧义在 DOM 加载完成(如 DOMContentLoaded)后立即读取,但注意:不能直接调用 requestFullscreen() —— 浏览器要求全屏必须由用户手势触发(如 click),否则会被拒绝。
'true',可自动显示“已启用全屏”的 UI 状态(如高亮按钮),但不立即全屏element.requestFullscreen()
'false' 或无值,保持默认窗口尺寸,按钮显示“进入全屏”利用浏览器原生事件监听实际全屏切换,确保存储值与真实状态一致:
立即学习“前端免费学习笔记(深入)”;
fullscreenchange(注意拼写,无 on 前缀)事件document.fullscreenElement 判断是否处于全屏:if (document.fullscreenElement) { localStorage.setItem('mediaPlayerFullscreen', 'true'); }else { localStorage.setItem('mediaPlayerFullscreen', 'false'); }
不同浏览器前缀尚未完全统一,但现代浏览器(Chrome 71+、Firefox 69+、Edge 79+)已支持标准 API;旧版可用 webkitIsFullScreen 或 mozFullScreenElement 回退,但仅需兼容到必要版本。
localStorage.removeItem('mediaPlayerFullscreen')