BLOB-объект application / pdf в safari iframe не отображается, но URL-адрес BLOB-объекта работает на отдельной вкладке в Safari. - PullRequest
1 голос
/ 27 мая 2019

Работает на Edge, Chrome, Firefox, но не в сафари.В Safari iframe выглядит так, как будто он знает, что должен отображать pdf (серый фон), но без страниц внутри.

https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf

но мне нужно дать ему blob:... url, созданный window.URL.createObjectURL(pdf)

1 Ответ

1 голос
/ 02 июля 2019

Возможно, я немного опоздал с ответом на этот вопрос, но столкнулся с той же проблемой при предварительном просмотре PDF-файла из URL-адреса большого двоичного объекта с использованием iframe в Safari.FileReader сделал свое дело для меня.Из вашего кода вместо использования window.URL.createObjectURL(pdf) прочитайте большой двоичный объект, который находится здесь, в формате pdf через FileReader, как показано ниже:

const pdf = new Blob([new Uint8Array(arrayBuffer)], { type: 'application/pdf' })

const reader = new FileReader();

reader.onload = () => {
const url = reader.result; // Use this `url` in iframe src
};

reader.readAsDataURL(pdf);

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

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