火狐创建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');
    // 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);
  })
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容