谷歌浏览器:audio如何隐藏下载按钮

当我们使用原生的audio标签时,可以看到如下的效果。

图片描述

那么如何让下载按钮隐藏掉呢?

1. controlsList="nodownload"

// 这个方法只支持 Chrome 58+, 低于该版本的是没有无法隐藏的
<audio src="/i/horse.ogg" controls="controls" controlsList="nodownload">
    Your browser does not support the audio element.
</audio>

controlsList属性只兼容Chrome 58+以上,具体可以参考controlslist.htmlcontrolsList在线例子

  • nodownload: 不要下载
  • nofullscreen: 不要全屏
  • noremoteplayback: 不要远程回放

2. css方式来隐藏

// 这个方式兼容所有版本的谷歌浏览器
audio::-webkit-media-controls {
    overflow: hidden !important
}
audio::-webkit-media-controls-enclosure {
    width: calc(100% + 32px);
    margin-left: auto;
}

3. 即使让下载按钮隐藏了,如何禁止右键下载?

// 给audio标签禁止右键,来禁止下载
<audio src="/i/horse.ogg" controls="controls" controlsList="nodownload" oncontextmenu="return false">
    Your browser does not support the audio element.
</audio>

4. 第三方插件: audiojs

项目地址: https://github.com/kolber/aud...
优点: 简单,无依赖
缺点:异步插入的audio标签,每次还是需要重新调用audiojs.createAll()方法来重新实例化

// 1.
<script src="/audiojs/audio.js"></script>

// 2.
<script>
   audiojs.events.ready(function() {
     var as = audiojs.createAll();
   });
</script>

效果图:
图片描述

5 audio相关问题以及解决方案

6 参考文献

阅读 11.7k

推荐阅读
洞香春
用户专栏

前端知识记录

769 人关注
124 篇文章
专栏主页