Откройте Base64 PDF на вкладке Chrome IOS - PullRequest
0 голосов
/ 29 декабря 2018

Я создаю файл base64 pdf, мне просто нужно показать его на другой вкладке iOS Chrome.У меня есть следующий код для этого.

if (navigator.userAgent.includes('CriOS')) {
  var base64PDF = base64ArrayBuffer(response.data);
  var win = window.open();
  win.document.write('<iframe id="myIframe" width="600" height="315" src="data:application/pdf;base64,' + base64PDF + '" frameborder="0" allowfullscreen ></iframe>');
  win.document.write('<script>window.open(window.document.getElementById("myIframe").src) </script>');

} else if (navigator.userAgent.includes('iPad') || navigator.userAgent.includes('iPhone')) {
  var base64PDF = base64ArrayBuffer(response.data);
  window.location.assign('data:application/pdf;base64,' + base64PDF);
}

этот код позволяет мне показать PDF на iframe, но когда я это делаю, window.location.href является URL, который генерирует PDF, иURL-адрес во вкладке о: пусто.

Поэтому я решил написать скрипт в документе, который выполняет window.open с помощью src iframe, но я получаю пустую страницу в другой вкладке.

Я ищу в URL-адресе вкладки Chrome данные: application / pdf; base64, ....., которые покажут пользователю опцию "Открыть в", и у него будут такие опции, как, отправитьпо почте или по почте и т. д. На самом деле я не могу этого сделать, потому что URL-адрес примерно такой: пустая и не является действительной ссылкой PDF base64.

Я уже пробовал что-то вроде window.location, window.open, window.location.href, window.location.assign, программно создайте тег и щелкните его, чтобы изменить href, и больше ничего не произойдет, если открыть вкладку about: blank.

Когда я пытаюсь что-то наподобие window.location.href = 'data: application / pdf; base64,.....; вернуть ложь; ', Google Chrome перенаправить на новую вкладку с правильным URL-адресом, но с возвращением false;предложение в последней части или URL, чтобы сделать неправильный PDF.

Я не знаю, почему программно вы не можете открыть эти данные: приложение ..... но если вы создаете iframe, как я упоминал вначалеВ этом сообщении вы перетаскиваете iframe пальцем на другую вкладку, открыв хром data: application ...... в URL вкладки.

1 Ответ

0 голосов
/ 29 июля 2019
var divpdf = document.createElement('div');
divpdf.innerHTML = '<object  style="display:none;" id="docuFrame" type="application/pdf" width="1px" height="1px" data="' +
linkSource + '"></object>';
document.lastElementChild.appendChild(divpdf);
var frame = document.getElementById('docuFrame') as HTMLObjectElement;
window.open(frame.data);
frame.remove();
divpdf.remove();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...