fetch下载excel,chrome没问题,Firefox无法调起浏览器下载窗(没反应,不报错)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>sample</title>
</head>
<body>
<button id='btn'>下载</button>
<span id='status'></span>
</body>
<script>
var url = "http://192.168.9.123/images/area.jpg";
document.getElementById('btn').onclick = function() {

document.getElementById('status').innerHTML = '下载中'; 
fetch(url).then(res => res.blob().then(blob => { 
  var a = document.createElement('a'); 
  var url = window.URL.createObjectURL(blob); 
  var filename = res.headers.get('Content-Disposition'); 
  a.href = url; 
  a.download = filename; 
  a.click(); 
  window.URL.revokeObjectURL(url); 
  document.getElementById('status').innerHTML = '下载完成'; 
})); 

};
</script>
</html>

这是一个网上的demo,也是这个样子,谷歌下载没有问题,火狐就没有反应也不报错,求大神指点下,大家可以把代码复制下去,url改成自己同源的,就会发现这个问题

阅读 3.3k
1 个回答
新手上路,请多包涵

添加到dom中再click,计时器延时删除a对象就行

document.body.appendChild(a)

a.click()

setTimeout(function(){document.body.removeChild(a)},1000)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题