У меня есть веб-страница, где мы генерируем PDF-файлы на основе выбора пользователем элементов на странице.Это вызывает обратную передачу (это страница ASP.NET WebForms), которая создает PDF-файлы на стороне сервера.Затем на страницу добавляется тег <a class="documentDownload">
для каждого элемента.
Когда страница перезагружается в браузере, выполняется следующий скрипт jQuery для автоматической загрузки файлов (если пользователь выбрал опцию автоматической загрузки).):
var divHost = document.createElement("div");
divHost.id = "elmntDnldLinks";
divHost.style.display = "none";
document.body.appendChild(divHost);
setTimeout(function() {
$(".documentDownload").each(function(idx, val) {
var lnkDownload = $(val),
save = document.createElement("a");
save.href = lnkDownload.attr("href");
save.download = lnkDownload.attr("download");
save.target = "_blank";
divHost.appendChild(save);
save.click();
});
}, 1000);
Этот сценарий имеет задержку в 1 секунду, затем для каждого элемента .documentDownload он создает новый элемент <a>
с тем же атрибутом href
исходного элемента и добавляет его кНедавно добавленный скрытый элемент, а затем программно щелкает по нему.
[ Эта стратегия создания новых ссылок и щелчка по ним вместо щелчка по оригинальным элементам DOM обходит меру безопасности браузера. ]
Это отлично работает в Firefox, но Chrome никогда не загружает более 10 файлов.Зачем?Я вижу, например, 15 ссылок на странице и в скрытом элементе, но загружено только 10 файлов.