不能一键下载2个文件(不同的url)
Posted
技术标签:
【中文标题】不能一键下载2个文件(不同的url)【英文标题】:Can't download 2 files by one click (different urls) 【发布时间】:2019-09-13 22:20:43 【问题描述】:我有按钮和两个复选框。如果选中了两个复选框,我必须调用 2 个不同的 url 来下载文件。一个 url 调用良好,但第二个被浏览器阻止。
window.open('http://example.com/getFirstFile', '_blank');
window.open('http://example.com/getSecondFile', '_blank');
我也试过
window.location = 'http://example.com/getFirstFile';
window.location = 'http://example.com/getSecondFile';
和延迟
window.location = 'http://example.com/getFirstFile';
setTimeout(function()
window.location = 'http://example.com/getSecondFile';
, 1000);
没有什么是行不通的。
如何调用两个链接进行文件下载?
【问题讨论】:
“但被浏览器第二次阻止”。你遇到了什么错误? 【参考方案1】:浏览器中的某些操作需要先启动用户操作。例如,如果您使用了媒体控件,则除非首先实例化单击处理程序,否则您无法操作播放请求。
打开窗口很可能也是这些事件之一,因此除非用户再次单击,否则 window.open 会被阻止。
你甚至可以从控制台看到这种情况,试试 -> window.open('http://www.microsoft.com', '_blank');window.open('http://www.google.co.uk', '_blank');
你会注意到只有微软的网站会打开。
但如果您将它们作为两个单独的控制台请求执行,它们都会打开。
这样做的明显原因是阻止恶意网站向您的浏览器发送垃圾邮件。
这里阻止的是弹出窗口阻止程序,因此可以选择覆盖它。但同样是用户必须允许这种情况发生。因此,在 Chrome 中,您应该会看到一个弹出窗口拦截器图标,您应该能够选择始终允许,然后您将能够打开多个窗口而无需其他用户交互。
【讨论】:
以上是关于不能一键下载2个文件(不同的url)的主要内容,如果未能解决你的问题,请参考以下文章