使用Javascript函数启动下载

时间:2012-03-28 02:18:01

标签: javascript

我有多个网址供用户下载。下载应该在他们点击" Like"之后触发。或发布"推文"。我已经成功设置了两者的回调函数。

我想知道如何使用Javascript以便同时触发多次下载。一种解决方案是使用window.location,但这只会触发单个下载。我甚至可以做多个window.open,但弹出窗口阻止程序会阻止它。

我对这种情况有什么其他选择?

2 个答案:

答案 0 :(得分:1)

如果您需要在不使用content-disposition: attachment;filename=filename标题的情况下使浏览器下载文件,则可以使用此功能。

function aDownload( url, name ) {
    // Original code from https://github.com/eligrey/FileSaver.js
    // Rewrited to work without blobs
    // Will return true if worked
    var click, save_link, event;
    save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
    if( !("download" in save_link) ) return false; // a[download] not supported on this browser
    save_link.href = url;
    save_link.download = name;
    event = document.createEvent("MouseEvents");
    event.initMouseEvent(
        "click", true, false, window, 0, 0, 0, 0, 0
        , false, false, false, false, 0, null
    );
    return save_link.dispatchEvent(event); // false if event was cancelled
}

答案 1 :(得分:0)

您可以做的是为每次下载创建一个隐藏的iframe文件的src,如:

function download(url){ 
  var iframe = document.createElement("iframe"); 
  iframe.src = url;
  iframe.style.display = "none"; 
  document.body.appendChild(iframe); 
}