场景:点击按钮下载文件
1.下载单文件

window.open("http://xxx.xx.xx","_self");

window.open 能够打开的原理是让我门用浏览器打开一个文件时,如果浏览器无法解析,它就会把该文件下载下来,_self是避免打开新的页面
window.location

 window.location.href ='http://xxx.xx.xx' 或者 window.location='http://xxx.xx.xx'

但是该方法不仅具有 window.open 的限制,还会受到浏览器兼容性的影响。

<a href="http://xxx.xx.xx" >xxxx
</a>
也可以成方法调用const link = document.createElement('a');link.style.display = 'none';link.href = "http://xxx.xx.xx"link.download = '券赠送模板.xlsx'; // 用这个属性重命名(跨域不行),可不写document.body.appendChild(link);link.click()document.body.removeChild(link);

2.点击一次下载多文件
无效代码,只能下载一个,但是点击n次却还是能下载n个

window.open("http://xxx.xx.xx","_self");
window.open("http://xxx.xx.xx","_self");

有效代码,但是会有肉眼打开新窗口关闭的操作

window.open("http://xxx.xx.xx","_self");
window.open("http://xxx.xx.xx","");

发现,当点击按钮时候, 第一次window.open没有执行完成,这时候第二个window.open会覆盖掉第一个导致执行一次下载,如果加上定时器是可以的,不优雅
最终方案:把click 事件拆分成
onMouseDown:鼠标上的按钮被按下了
onMouseUp:鼠标按下后,松开时激发的事件
还有有其他方法,iframe实现之类的就懒得写了,主要是提供一个思路,另外,click拆分在移动端写法不一样

 <ButtononMouseDown={() => { window.open('http://xxx.xx.xx.xlsx', '_self')}}onMouseUp={() => {window.open('http://xxx.xx.xx.xlsx', '_self')}}>

js实现批量下载文件(csv,xlsx等图片下载需要另外找文档补充download怎么用)相关推荐

  1. java批量添加文件到ZIP压缩包并下载,文件名相同导致的异常

    做了个批量将文件添加为ZIP并下载的功能. 然后发现下载的文件数量变少了,原因是因为其中有些文件的文件名是相同的. 而ZipOutputStream流的这个方法,是无法添加相同文件名的内容. zos. ...

  2. php下载apk文件源码下载,PHP_php下载文件源代码(强制任意文件格式下载),一个简单的php文件下载源代码 - phpStudy...

    php下载文件源代码(强制任意文件格式下载) 一个简单的php文件下载源代码,虽不支持断点续传等,但是可以满足一些常用的需求了.php下载文件其实用一个a标签就能实现,比如 magento-1.8.1 ...

  3. python下载文件加上日期_Python实现给下载文件显示进度条和下载时间代码

    本篇文章小编给大家分享一下Python实现给下载文件显示进度条和下载时间代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 该模块调用了三个库: 1. ...

  4. 【踩坑】Linux java中ftp下载文件,解压文件损坏,以及图片下载打开只显示下载路径的问题

    [踩坑]Linux java中ftp下载文件,解压文件损坏,以及图片下载打开只显示下载路径的问题 一. 问题重现 二. 问题解决思路 1. 确认是不是上传就导致数据出错了 2. 是不是平台问题 三. ...

  5. 【批量改文件夹中的图片名称-python】

    批量改文件夹中的图片名称-python(记录) 目的 最近在制作零件数据集标注时,发现在摄像机中拍摄的图片名称是乱码的,不便于进行数据标注,所以写下这段代码,以便日后再次使用. 转换之前图片文件夹中的 ...

  6. 轻松搞定阿里OSS文件上传和图片下载

    轻松搞定阿里OSS文件上传和图片下载 目录 1. 阿里云oss账号准备   1.1 注册阿里云账号,并开通OSS存储服务   1.2 创建RAM子用户并使用子账户的AccessKeyId和Access ...

  7. C++ vs2017 - libcurl - http请求 代码大全(请求数据,上传下载文件,多线程上传下载文件)

    在网上搜寻各种libcurl的用法,将代码集合于此! 目录 一.配置curl项目 二.Curl 请求参数 1. CURLOPT_POST 2. CURLOPT_URL 3. CURLOPT_HTTPH ...

  8. java实现保存合同模板_Java中常用到的文件操作那些事(一)——替换doc文档模板,生成真实合同案例...

    工作中,我们时常会遇到一些操作文件的操作,比如在线生成合同模板,上传/下载/解析Excel,doc文档转为pdf等操作.本文就已工作中遇到的在线生成合同为例,简要地介绍一种文档替换写法. 本文目的:给 ...

  9. java计算机毕业设计疫苗药品批量扫码识别追溯系统源码+数据库+系统+lw文档+部署

    java计算机毕业设计疫苗药品批量扫码识别追溯系统源码+数据库+系统+lw文档+部署 java计算机毕业设计疫苗药品批量扫码识别追溯系统源码+数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B ...

最新文章

  1. OpenCV 4.5.2 发布
  2. Powershell 音乐播放
  3. yarn全局安装vue/cli vue不是内部命令
  4. CVE-2017-10271 WebLogic XMLDecoder反序列化漏洞
  5. 20200719每日一句
  6. matlab 中文注释乱码问题解决
  7. spss分析qpcr数据_SPSS统计分析案例:Kappa一致性系数
  8. 工业相机二次开发简约教程
  9. 2017第九届北京空气净化及水净化、北京国际节能减排展览会会刊
  10. 黑苹果电源键睡眠关机的分析及解决办法
  11. 大白菜U盘安装win10操作系统
  12. @Around简单使用示例——SpringAOP增强处理
  13. 怎么把avi转换成mp4?
  14. python的非法变量名_Statsmodels(Patsy)非法变量名/“Series”对象不可调用E
  15. GitHub Copilot 被爆存在安全漏洞,涉及四成代码
  16. 电影天堂电视剧批量下载的地址
  17. String 类 TRYTRY
  18. 华为鸿蒙系统智能手机_知科技-新鲜事|华为将发布鸿蒙系统智能手机
  19. 微信小程序之会议预约管理系统(含源码+论文+答辩PPT等)
  20. BP神经网络在期货价格预测中的应用

热门文章

  1. 2023 聚合热搜热榜API接口PHP源码
  2. notepad++添加运行命令,notepad++运行命令失效
  3. C和C++的布尔类型
  4. cookie (储存在用户本地终端上的数据)
  5. python线程唤醒_python 多线程
  6. vc模拟 tabletpc_Scott的TabletPC最佳工具列表
  7. 超好用的图片无损放大软件:Topaz Gigapixel AI mac版(支持m1)
  8. perl语言:分割路径字符串,获取文件名
  9. 计算机一级重庆ppt真题,重庆计算机一级考试题库
  10. 将ChatGPT集成到搜索引擎上(稳定版)