先介绍一下我们的主角下载,让大家有个简单的了解。图中我们可以看到a标签的download属性,用来指定可以下载,取值为filename。说说图片来源吧。说说现场吧。在网页上下载东西,下载一个资源(software.exe、压缩包.zip、图片.png、article.txt),我们通过url打开,发现有的可以下载,有的可以直接显示是的,这有点尴尬。先说说为什么有的资源会直接显示出来。这是因为浏览器发现他可以自己打开,所以他认为他要显示,比如你的.png.txt.html。那如果我们要下载呢?对于这种东西,一般有两种方法,一种是前端控制,一种是后端控制。后端控制新给你一个url,加上一个下载头。浏览器一看,咦,这东西是要下载的,不用打开,直接下载。这样的下载需要后台人员配合,点一下就改代码了。前端控制a标签的Download属性。添加之后就是下载资源了。这很好。你想下载你想下载的东西。但是,这么有用的东西,前端一般都会出问题。问题是什么?兼容性问题,FF不支持跨域下载,可以在非跨域-测试地址下下载。跨域的情况下,在chrome中不好设置文件名——测试地址同上。当然还有我们要兼容的ie。//这样写成一个函数,我们就不用在界面上打a标签了,换成js触发器。a=document.createElement('a');a.download=filename;a.href='https://segmentfault.com';//触发点击document.body.appendChild(a);a.click();文档.body.removeChild(a);
