需求是: 后端通过接口把下载文件的 url 给我 我通过 for 循环生成 a 标签 然后把 url 绑定到 a 标签的 href 上 然后触发点击事件 进行下载 但是 每次浏览器只能下载最后一个文件
我 console 过 url 不是同一个数据
开始是以为太快了 浏览器没反应过来 然后我开了个定时器 还是只能下载最后一个
这个我在谷歌和 ie 上试过 都只能下载最后一个文件
问下大佬 是因为浏览器机制的限制还是什么问题
![]() | 1 Jiyunz 2020-10-22 09:47:15 +08:00 问问题不上代码 |
2 qtz2liu 2020-10-22 09:50:26 +08:00 听上去是闭包啊 |
3 ZinWUT 2020-10-22 09:51:29 +08:00 |
![]() | 4 Yumwey 2020-10-22 09:51:33 +08:00 via Android 闭包 |
![]() | 5 shintendo 2020-10-22 09:52:18 +08:00 典型的闭包没写好的现象 你为啥要 console,直接检查元素看 a 标签上的 href 是不是都一样 |
![]() | 6 dinjufen 2020-10-22 09:52:32 +08:00 你这没代码别人只能靠猜 |
7 jonsnow93 2020-10-22 09:52:59 +08:00 感觉像是前端经典的循环与闭包问题 |
![]() | 8 michaelcheng 2020-10-22 09:53:19 +08:00 浏览器限制吧,上一个下载请求会被自动 canceled 。 看下: https://segmentfault.com/a/1190000016771027 |
![]() | 9 noe132 2020-10-22 09:56:09 +08:00 点链接就是浏览器跳转啊 你一个 tab 还能影分身加载 10 个链接? 手动点链接点错了,都可以在打开之前强行点正确的链接改回来,你这连一个 eventloop 都没跑完就点了 10 个链接,当然只有最后一个有效了 |
10 qqqq11 2020-10-22 10:04:33 +08:00 上代码 |
![]() | 11 loveToMy1 2020-10-22 10:53:31 +08:00 不上代码靠人瞎猜吗 |