Как загрузить PDF в новую вкладку / окно без блокировщика всплывающих окон?
У меня есть следующий сервисный вызов для загрузки файлов с сервера. В настоящее время он у меня есть, чтобы PDF-файлы открывались в новой вкладке / окне и загружались любые другие типы документов.
Проблема, с которой я столкнулся сейчас, заключается в том, что PDF блокируется блокировщиком всплывающих окон. Есть ли способ обойти это?
return formService.getForm(params)
.$promise
.then(response => {
var blob = new Blob([response.data], {
type: response.responseType
});
var fileUrl = (window.URL || window.webkitURL).createObjectURL(blob);
if (response.responseType === 'application/pdf') {
window.open(fileUrl);
} else {
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none"
a.href = fileUrl;
a.download = formName;
a.target = "_blank";
a.click();
window.URL.revokeObjectURL(fileUrl);
}
})
.catch(error => {
console.error(`Error downloading form '${formName}' `, error);
});
1 ответ
Решение
Я нашел ответ на свой вопрос через другой пост переполнения стека.
Всплывающее окно window.open блокируется во время события нажатия
В основном, я звоню var newWindow = window.open();
прежде чем я позвоню в сервис, а затем newWindow.location = fileUrl
в обратном вызове успеха.