@skntxtrd
Фулстек разработчик Java + JavaScript

Почему кнопка «скачать» не работает на новой вкладке Chrome PDF viewer после window.open()?

Я работаю над проектом, который получает данные с сервера через Spring boot в виде OutputStream. На фронте я получаю PDF файл, представленный в виде массива байт. Мне нужно открыть его в новой вкладке. Для этого я использую window.open() в js коде. Вот код обработки ответа с сервера и открытия файла в новой вкладке.
fetch(options.url, options)
        .then(response => {
            return response.blob();
        })
        .then(blob => {
            const reader = new FileReader();
            reader.readAsDataURL(blob);
            reader.onload = () => {
                const data = reader.result
                const tab = window.open();
                tab.document.write("<html>" +
                                        "<body>" +
                                            "<embed type='application/pdf' " +
                                                    "style='position:absolute; left: 0; top: 0;' " +
                                                    "width='100%' " +
                                                    "height='100%' " +
                                                    "src='" + data +"'/>" +
                                        "</body>" +
                                    "</html>")
            }
        })


Но есть проблема после того, как открылась вкладка. Все кнопки в Chrome PDF viewer работают корректно, кроме кнопки "скачать". Ничего не происходит по нажатию на неё.

dlRib.png

Я пробовал открывать новую вкладку с помощью URL.createObjectURL(response.blob()), однако браузер на мгновение открывал её и сразу же закрывал.

Есть идеи, как это решить?
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы