controlslist="nodownload"在Firefox是否被忽略?并不只看表面做法,关键还要理解相关条件、限制和后续影响。
Firefox 官方明确不支持 controlslist 属性,包括 nodownload;即使在 Chrome/Edge 中生效,它也仅隐藏下载按钮,无法阻止右键另存或网络抓包;真正防下载需组合 JS 和 CSS 手段,或彻底自定义控件。
是的,controlslist="nodownload" 在 Firefox 中完全被忽略,且官方明确不计划支持。
这不是兼容性“待完善”,而是主动放弃。Mozilla 官方已明确表示:不会实现 controlslist 属性的任何值(包括 nodownload、nofullscreen 等)。这意味着:
<video controls controlslist="nodownload">,Firefox 仍会照常显示下载按钮'controlsList' in document.createElement('video') 在 Firefox 中恒为 false
即便在 Chrome/Edge 中生效,nodownload 也只是移除 UI 按钮,它不阻止:
<source> 的 src 地址真正起作用的是组合手段:controlslist="nodownload" + oncontextmenu="return false;" + style="pointer-events: none;"(注意:后者会同时禁用所有鼠标交互,需权衡可访问性)
删掉 controls 属性,自己用 JS 实现最小控件集,是目前唯一可靠路径。例如:
<video id="myVideo" src="lesson.mp4"></video><button onclick="document.getElementById('myVideo').play()">播放</button>
这样做的代价很实在:
canplaythrough 才能启用按钮play(),否则静音也不行所以别把 controlslist 当成“防下载开关”,它只是 UI 层的视觉过滤器;而 Firefox 连这个过滤器都不装。