controlslist属性用于定制视频控件行为:controlslist="nodownload noremoteplayback"隐藏下载按钮并禁用远程播放ui,但不阻止实际下载或投屏,且仅在支持浏览器中生效,需配合controls使用,不能替代服务端保护。

在 HTML 的 <video></video> 标签中,controlslist 属性用于自定义浏览器默认控件的行为。设置 controlslist="nodownload noremoteplayback" 的作用是隐藏下载按钮、禁用远程播放(如投屏、AirPlay、Chromecast 等),但**不保证完全阻止下载或投屏**,仅影响浏览器原生控件的显示与交互逻辑。
controlslist="nodownload" 的实际效果
该值会从视频控件栏中移除“下载”图标(如果浏览器支持并默认显示)。但需注意:
- 它不阻止用户通过开发者工具、网络面板或屏幕录制等方式获取视频资源;
- 对右键另存为、地址栏直接访问视频 URL 等行为无限制;
- 部分浏览器(如 Safari)可能忽略此属性,或仅在特定模式下生效。
controlslist="noremoteplayback" 的作用范围
该值禁止视频通过系统级远程播放功能输出到外部设备,例如:
- 禁用 Chrome 中的“投射”菜单项;
- 阻止 Safari 在 macOS/iOS 上显示 AirPlay 按钮;
- 不影响 JavaScript 调用
HTMLMediaElement.remotePlaybackAPI 的主动控制,但会限制自动出现的 UI 入口。
使用时的注意事项
这个属性属于实验性特性,兼容性有限:
- Chrome 和 Edge 支持较完整,Firefox 当前不支持
controlslist; - 必须配合
controls属性使用(即<video controls controlslist="..."></video>),否则控件本身不显示,该属性无效; - 不能替代服务端权限控制或 DRM 方案,仅作为前端体验层的辅助限制。
如果目标是增强内容保护,应结合服务器鉴权、Token 链接、HLS/DASH 分片加密、或商业 DRM(如 Widevine、FairPlay)方案,而非依赖 controlslist。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











