controlslist="noremoteplayback"仅隐藏投屏按钮,不禁止投屏功能;必须与controls共用,小写无引号无等号,Chrome/Edge完全支持,Safari部分支持,Firefox和X5内核忽略;需搭配disableRemotePlayback及crossorigin="anonymous"并辅以服务端鉴权才具实际防护效果。

controlslist="noremoteplayback" 是唯一能影响投屏 UI 的写法
这个属性不会禁用投屏功能,只告诉浏览器“请隐藏 Cast/AirPlay 按钮”。它必须和 controls 一起用,否则控件栏都不显示,noremoteplayback 就没意义。常见错误是单独写 controlslist="noremoteplayback" 却漏了 controls,结果连播放按钮都没了。
值必须小写、无引号、无等号:noremoteplayback 正确;noRemotePlayback、noremoteplayback="true"、controlslist="noremoteplayback "(末尾空格)都会被忽略。
- Chrome/Edge 100% 生效,按钮从控件栏消失
- Safari 15.4+ 支持,但仅对 AirPlay 图标有效;iOS 15.3 及更早版本完全不识别
- Firefox 完全无视该值,即使最新版也看不到任何变化
- 微信/QQ 内置浏览器(X5 内核)大概率跳过解析,不生效
搭配 disableRemotePlayback 才算完整提示
disableRemotePlayback 和 controlslist="noremoteplayback" 不冲突,可以共存,且推荐一起写。前者是语义更强的“禁用远程播放”信号,后者是 UI 层面的按钮隐藏,两者叠加能让 Chromium 系列浏览器理解得更明确。
注意:disableRemotePlayback 必须是无值布尔写法—— 才对;写成 disableRemotePlayback="true" 或 disableRemotePlayback="disabled" 会被所有浏览器当作无效属性丢弃。
- 动态设置(如
videoEl.setAttribute('disableRemotePlayback', ''))在 Safari 和部分 Android WebView 中可能不触发 UI 更新,建议初始化时就写死在 HTML 里 - 这两个属性都只是“提示”,不是强制策略。用户已点开 Cast 后刷新页面,投屏会话仍继续
- 它们对系统级镜像(macOS 镜像、Windows 投影到此电脑)完全无效
controlslist 对投屏行为没有实际拦截能力
很多人误以为加了 noremoteplayback 就能防投屏,其实它只管按钮显隐。真正决定能否投屏的是:视频地址是否可被电视端 WebView 直接访问、MSE 是否启用、.m3u8 是否暴露、CORS 是否放行。
把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。
例如: 这种公网直链,哪怕加了 controlslist,用户在电视上打开浏览器输同样 URL 依然能播;而换成带短期 token 的接口 /api/play.m3u8?token=xxx 并校验 session,才构成实际门槛。
-
controlslist无法阻止 Chrome 的“投射标签页”功能——那是整个页面被推过去,跟标签无关 - DLNA/Miracast 投屏也不看这个属性,它们靠扫描局域网 HTTP 服务或解析设备发现协议
- 若视频由腾讯云 SDK、阿里云播放器等封装层加载,原生
controlslist通常被内部控件覆盖,不起作用
真要降低投屏成功率,得配合 crossorigin 和鉴权
controlslist 只是表层动作,要让它有点实际效果,必须同步处理资源加载路径。关键一点: 必须加上,否则后续 Canvas 水印、帧分析等防御逻辑会因 CORS 被拦,失去兜底能力。
后端响应头也要配对:Access-Control-Allow-Origin: null(注意是字符串 "null",不是 undefined),这样非同源环境(比如电视浏览器跨域请求)就拿不到视频元信息,连 canplay 事件都触发不了。
- 避免用
controlslist做心理安慰式防护——它既不能防录屏,也不能防抓包,更拦不住快捷键(F11/Cmd+Shift+F)触发的全屏或镜像 - 如果业务真有强版权要求,前端能做的上限就是增加投屏链路中的失败点;硬防线永远在服务端:短期 token、Referer 校验、IP 绑定、DRM 加密流
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










