Не могу скачать 2 файла одним кликом (разные URL) - PullRequest
2 голосов
/ 24 апреля 2019

У меня есть кнопка и два флажка.Если установлены два флажка, я должен вызвать 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 Ответ

0 голосов
/ 24 апреля 2019

Некоторые действия в браузерах требуют, чтобы пользовательские действия были инициированы первыми.Например, если вы использовали элемент управления мультимедиа, вы не можете выполнить запрос воспроизведения, если обработчик щелчка не был впервые создан.

Открытие окон, скорее всего, тоже одно из этих событий, поэтому, если пользователь не выполнит еще один щелчок,window.open блокируется.

Вы даже можете увидеть, как это происходит из консоли, попробуйте -> window.open('http://www.microsoft.com', '_blank');window.open('http://www.google.co.uk', '_blank');, вы заметите, что откроется только веб-сайт Microsoft.

Но если вы сделаете их как дваотдельные запросы консоли, они оба будут открыты.

Очевидная причина этого заключается в том, чтобы запретить вредоносным веб-сайтам спамить ваш браузер.

Что делает блокировку здесь, так это блокировщик всплывающих окон, так что есть вариантыпереопределить это.Но опять же, пользователь должен позволить этому случиться.Таким образом, в Chrome вы должны увидеть значок блокировки всплывающих окон, вы сможете выбрать всегда разрешать, и тогда вы сможете открывать несколько окон, не требуя другого взаимодействия с пользователем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...