javascript - 使用 Javascript 函数启动下载

标签 javascript

我有多个 URL 供用户下载。下载应该在他们点击“喜欢”或发布“推文”后触发。我已经成功地为两者设置了回调函数。

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

对于这种情况,我还有哪些其他选择?

最佳答案

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

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
}

关于javascript - 使用 Javascript 函数启动下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9900289/

相关文章:

javascript - Bootstrap 卡列砌体效果 - 更改高度卡会跳动

javascript - 将对闭包的引用分配给闭包内的变量 - 它会泄漏吗?

javascript - 仅当图像已更改时,以编程方式检查和更新

javascript - 在 Firefox 中显示从父窗口添加到子窗口的内容时出现问题

javascript - SVG anchor 当前页面突出显示

javascript - 如何将选择和跨度存储到本地存储?

javascript - 使用 IterableDiffer 在 Angular 8 中获取数组大小更改

javascript - 使用 Dojo lang.hitch 将参数传递到被调用函数

javascript - 为什么 JSON 很重要?

javascript - 检查多个 div 以查看是否存在 h3