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

某头羊 2017-11-01 02:19:29
<!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改成自己同源的,就会发现这个问题
...全文
627 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuailexiangrikui 2019-08-01
  • 打赏
  • 举报
回复
引用 1 楼 支付宝加好友偷能量挖 的回复:
添加到dom中再click,计时器延时删除a对象就行 document.body.appendChild(a) a.click() setTimeout(function(){document.body.removeChild(a)},1000) Web开发学习资料推荐 XMLHttpRequest加载视频并播放 javascript混淆加密
方法可行!
Go 旅城通票 2017-11-02
  • 打赏
  • 举报
回复
添加到dom中再click,计时器延时删除a对象就行 document.body.appendChild(a) a.click() setTimeout(function(){document.body.removeChild(a)},1000)

Web开发学习资料推荐
XMLHttpRequest加载视频并播放
javascript混淆加密

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧