解决window.location.href 下载文件时,一次点击产生两次下载+页面跳转问题

19 篇文章 0 订阅

解决 window.location.href 下载文件时,一次点击产生两次下载+页面跳转问题

一般我们常用 window.open 打开一个新窗口的方式,来下载文件,但是新的窗口不会关闭,除了明显体验上不好以外,有时还会导致一次点击同时产生两次下载。

const download = (url) => {
   window.open(url);
}

解决方案:

const = download = (url) => {
  //获得id为downLoadListFrame的frame
  var divFrame = window.parent.document.getElementById("downLoadListFrame")
  //判断是否存在,如果存在先移除,再重新创建
  if (divFrame != null) {
      window.parent.document.body.removeChild(divFrame)
  }
  //重新创建
  var iframe = window.parent.document.createElement("iframe");
  iframe.setAttribute("id", "downLoadListFrame");
  //download_file.id = "downFrame";
  window.parent.document.body.appendChild(iframe);
  divFrame = window.parent.document.getElementById("downLoadListFrame");
  //隐式调用,(注意:window.parent.document 适应对于,farme内部代码,调用frame 外部dom;如果项目未用frame,改写成 document即可)
  divFrame.src = url;
  divFrame.style.display = "none";
},

参考链接

https://www.codeprj.com/blog/a404691.html

前端下载文件的几种方式

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值