esc键是最可靠退出方式,浏览器原生支持且不受js卡死影响;f11无效于视频全屏;脚本退出需兼容处理;鼠标悬停无反应可双击或右键;刷新页面可重置全屏状态。

Esc 键是最可靠、最通用的退出方式
不管优酷用的是自研播放器还是标准 html5 <video></video>,只要它调用了 requestFullscreen() 进入全屏,按下键盘上的 Esc 键就能立即退出。这是浏览器原生行为,不依赖页面 JS 是否正常运行,也不受广告脚本干扰——哪怕页面卡死,Esc 依然有效。
注意:F11 是让整个浏览器窗口全屏/还原,和优酷视频自身的 html5 全屏无关;误按 F11 可能导致浏览器窗口变大,但视频仍卡在小窗里,反而更难操作。
document.exitFullscreen() 脚本退出必须加容错处理
如果你在控制台或用户脚本(如 Tampermonkey)里手动执行退出逻辑,不能直接写 document.exitFullscreen() 就完事。因为:旧版 safari 用 webkitExitFullscreen(),IE11 用 msExitFullscreen(),firefox 曾用 mozCancelFullScreen() —— 现代浏览器虽已统一到标准 API,但优酷这类老项目仍可能触发兼容路径。
实操建议用这个最小安全版本:
立即学习“前端免费学习笔记(深入)”;
if (document.fullscreenElement) { document.exitFullscreen?.() .catch(() => { document.webkitExitFullscreen?.(); document.msExitFullscreen?.(); }); }
关键点:
• 先判断 document.fullscreenElement 是否存在,避免无意义调用
• 所有方法都加可选链 ?.(),防止某前缀方法根本不存在时报错中断
• 不要依赖 cancelFullScreen 这类已废弃名称(chrome 90+ 已移除)
鼠标悬停没反应?可能是优酷隐藏了退出按钮或拦截了事件
优酷新版 Web 播放器默认把退出全屏按钮藏得比较深:需将鼠标移到视频右下角,等控制栏浮现后,再找那个「两个斜向内箭头」图标(↵ 形状)。但部分广告位或活动页会通过 CSS 遮盖、pointer-events: none 或 z-index 层级压制,导致按钮不可见或点击无效。
此时可尝试:
• 快速双击视频画面(部分版本支持双击切回窗口模式)
• 右键视频区域 → 若弹出“退出全屏”上下文菜单,直接点击
• 检查地址栏右侧是否有“全屏”图标(Chrome/edge),点击它也能退出
刷新页面不是万能解,但对状态卡死最有效
当 Esc 失效、按钮点不动、脚本也无响应时,大概率是全屏状态未被正确释放(比如 fullscreenchange 事件监听器抛错后未清理,或 requestFullscreen() 被多次调用但只退出了一次)。这时 F5 或 Ctrl+R 强制刷新,能让浏览器彻底丢弃当前全屏上下文,重置 dom 和 Fullscreen API 状态。
注意:刷新会丢失播放进度(除非优酷启用了 localStorage 记忆),且部分嵌入式 iframe 场景下,仅刷新父页无效,需右键视频 → “在新标签页中打开视频”,再对独立页面操作。
真正容易被忽略的是:Fullscreen API 的状态是全局的,但“谁发起的全屏”并不记录。所以即使你没点过全屏按钮,只要页面任意脚本(包括广告 SDK)调用了 requestFullscreen(),你就得面对这个状态——关不掉,往往不是你的操作问题,而是第三方代码没善后。