火狐创建a标签触发点击实现下载功能点击事件无效

2023-07-30  本文已影响0人  萘小蒽

下面代码实现下载文件功能

export function commonRequest(url,params,method="post",filename = '模板.xls') {
  return request({
    url: url,
    method:method,
    data:method.toLocaleLowerCase() !=='get'?params:'',
    responseType:'blob',
   // headers
  }).then(res=>{
    const link = document.createElement('a');
    // const filename = decodeURIComponent((getItem('contentFileName')));
    link.download = filename;
    link.href = URL.createObjectURL(res)
    link.click()
  }).catch(err=>{
    // console.log(err,666);
  })
}

问题:

发现火狐部分版本在触发点击事件后无效;

解决方案:

创建事件,a标签触发

export function commonRequest(url, params, method = "post", filename = '模板.xls') {
  return request({
    url: url,
    method: method,
    data: method.toLocaleLowerCase() !== 'get' ? params : '',
    responseType: 'blob',
    // headers
  }).then(res => {
    const link = document.createElement('a');
    link.download = filename;
    link.href = URL.createObjectURL(res);
    var evt = document.createEvent("MouseEvents");
    evt.initEvent("click", true, true);
    link.dispatchEvent(evt);
  }).catch(err => {
    // console.log(err,666);
  })
}
上一篇下一篇

猜你喜欢

热点阅读