下载按钮

时间:2016-07-22 02:18:37

标签: javascript download

我正在制作一个音频播放器,我想要包含一个下载当前曲目的按钮。我尝试了人们建议的常用解决方案,但这些只在新标签中打开.mp3并播放。这就是我正在使用的:

document.getElementById("dlButton").addEventListener("click", function(){
window.location = "tracks/CFKZ.mp3";});

我在堆栈溢出时看到了另一个解决方案here

<form method="get" action="file.doc">
<button type="submit">Download!</button>
</form>

我不明白这一点。对我来说,为什么下载按钮需要将信息发送到要下载的文件是没有意义的。

4 个答案:

答案 0 :(得分:1)

下载链接的最佳做法如下:

<a href="path/to/file" class="button" download>Some text</a>

跨浏览器支持得相当好。您可以使用类设置链接样式,使其看起来像一个按钮,可能具有以下内容:

.button {
  text-decoration: none !important;
  border: 1px solid black;
}

编辑:如果你想使用它并让它在Safari或IE中运行,请使用类似Modernizr的东西。

答案 1 :(得分:0)

如何使用锚标记,只需使用bootstrap使其看起来像一个按钮。

 <a href="tracks/CFKZ.mp3" download="tracks/CFKZ.mp3">Download!</a>

答案 2 :(得分:0)

带有简单锚标记的HTML5解决方案,使用&#39;下载&#39;属性(不需要任何javascript):

<a href="/music/somefile.mp3" download="somefile.mp3">Download mp3</a>

download属性也可用于重命名文件:

<a href ="/music/3ri3nlfkndfoiweuio.mp3" download="TheManWhoSoldTheWorld.mp3" >Download a Bowie Hit</a>

将下载为TheManWhoSoldTheWorld.mp3&#39;

编辑跨浏览器支持(依赖于Modernizr - 如果担心跨浏览器支持https://modernizr.com/,您应该使用它):

也许这个小提琴会有所帮助:https://jsfiddle.net/abigwonderful/3jfqz5j0/2/ 或者只需在多个浏览器中打开此窗口,然后点击“运行代码段”&#39;下面:

&#13;
&#13;
var a = document.createElement('a');
if (typeof a.download == "undefined") {
    //append some text to inform the user 
    //they should right-click the link to download
    //example:
    var downloadDiv = document.getElementById('download');
    downloadDiv.innerHTML = "Right-click the link and select 'Save as...' to download the mp3";

} 
&#13;
<a href="/music/somefile.mp3" download="somefile.mp3">Download mp3</a>
<div id="download"></div>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

尝试以下代码,看看它是否是你想要的

<a href="test.zip" download='test'><input type="button" value="Download Now"></a>