【问题标题】:File download not working on firefox文件下载无法在 Firefox 上运行
【发布时间】:2013-11-30 17:58:33
【问题描述】:

我编写的这段代码在 Google Chrome 和 Opera 上运行完美,但在 Firefox 上运行不正常

function onSaveJPG(url,n){
    var save = document.createElement('a');
    save.href = url;
    save.target = '_blank';
    save.download = 'Image no '+n+'.jpeg' || url;
    var event = document.createEvent('Event');
    event.initEvent('click', true, true);
    save.dispatchEvent(event);
    (window.URL || window.webkitURL).revokeObjectURL(save.href);
}

怎么了?请指导我。

【问题讨论】:

  • 大部分已弃用,大多数浏览器现在支持event constructor
  • 您必须将保存元素附加到正文
  • 附带说明,要触发下载,您真正需要做的就是save.onclick();

标签: javascript firefox download


【解决方案1】:

这应该可以工作(我通过查看 FileSaver.js 代码发现了它):

function onSaveJPG(url,n){
    var save = document.createElement('a');
    save.href = url;
    save.download = 'Image no '+n+'.jpeg' || url;
    var event = document.createEvent("MouseEvents");
        event.initMouseEvent(
                "click", true, false, window, 0, 0, 0, 0, 0
                , false, false, false, false, 0, null
        );
    save.dispatchEvent(event);
}

(主要问题是您需要为 firefox 使用 MouseEvent 类型的事件而不是 Event。此代码也适用于 Chrome)。

【讨论】:

    猜你喜欢
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 2012-11-16
    • 2015-05-14
    相关资源
    最近更新 更多