最近做到下载Excel,用了几种方法,各有不同效果。
方法一: 在拿到请求链接之后,直接window.open(url)
如图:
这种方法最为简单,只需要一行代码,但是有个问题,就是下载的时候页面会出现闪现刷新,更为恼火的是这种方法下载会被浏览器拦截。很不爽这种效果,就尝试别的方法。
方法二:a链接下载,在页面上隐藏a链接,在请求道下载文件地址之后将变量downloadUrl改成文件地址,然后自动下载文件,但此种方法也会出现页面闪现刷新。还是不爽,继续找别的方法
方法三:iframe下载,如同a链接,在页面隐藏iframe,动态修改iframe的src为文件地址,
最后,在下载的时候依旧是会出现页面刷新,不爽?继续试。
方法四:表单下载
在页面动态创建表单,使其隐藏,设置属性target='',methods='get',action=文件路径,再生成一个input,用于防止下载时所需的参数,格式分别为name:'',value:'',这里如果下载时不需要参数,也需要一个input设置name,value,不然会报错
生成的form添加到页面之后,点击下载,页面不刷新直接下载。相比前面,效果舒服多了。