js 下载文件

网上的文章乱七八糟,还不支持 IE8,

这里整理了一下,支持 IE 浏览器,360浏览器,火狐,谷歌

当然最简单的其实是后端用流文件的方式给出链接,前端点击a标签直接就下载了(以前chrome浏览器下是这么做的,其他浏览器没测过)

    //url为文件链接地址如: http://xx.xx.com/music.mp3
    //docx类型也支持,其他类型没有测过
    function download(url) {
        //是否支持download属性
        //支持download属性的用download
        //不支持的用form表单
        var isDownLoad = 'download' in document.createElement('a');

        if(!isDownLoad) {
            var $form = $('<form method="GET"></form>');
            $form.attr('action', url);
            $form.appendTo($('body'));
            $form.submit();
            $form.remove();
        } else {
            var aLink = document.createElement('a');
            aLink.href = url;
            aLink.download =''; // 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);
        }
    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 转自博客园 原文 一、简单介绍一下什么是浏览器内核。浏览器最重要或者说核心的部分是“Rendering En...
    吴晗君阅读 9,092评论 1 30
  • 浏览器发展史 现在浏览器已经成为网上生活的重要家园和工具。而从1991年,Web之父Tim Berners-Lee...
    波段顶底阅读 17,716评论 6 86
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,697评论 1 92
  • 我能猜想到偷偷拉当时失落的心情。 回到家中,昆汀对我说,这2个星期每天都要照顾我而且还要上班,真的让他很累,不...
    安赛33阅读 3,192评论 0 0
  • 有时候,我工作着,来了微:你在干嘛?我微微一笑:上课! 有时候,我河堤小走,来了微:你在哪里?我嘴角上翘:跑步! ...
    湍河故事阅读 3,188评论 2 4

友情链接更多精彩内容