JS弹出下载对话框以及实现常见文件类型的下载

时间:2018-06-10 17:11:04 类型:JS/JQUERY
字号:    

创建下载一般我们都是通过A链接来直接下载, 但有时我们是通过后台生成的链接, 然后直接下载, 这时我们就不得不使用JS来创建链接下载了:

/**
 * @param url 下载地址,也可以是一个blob对象,必选
 * @param saveName 保存文件名,可选
 */
function openDownloadDialog(url, saveName)
{
    if(typeof url == 'object' && url instanceof Blob)
    {
        url = URL.createObjectURL(url); // 创建blob地址
    }
    var aLink = document.createElement('a');
    aLink.href = url;
    aLink.download = saveName || ''; // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效
    var event;
    if(window.MouseEvent) event = new MouseEvent('click');
    else
    {
        event = document.createEvent('MouseEvents');
        event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    }
    aLink.dispatchEvent(event);
}

来源: https://www.cnblogs.com/liuxianan/p/js-download.html