#javascript #html #jquery #pdf #iframe
Вопрос:
У меня есть iframe, отображающий PDF-файл в кодировке base64. Как только он загрузился, я пытаюсь это сделать .contents().find(..)
, однако он не находит содержимое. Внутри iframe находится правильно загруженный HTML-документ, содержащий PDF-файл, и текстовый элемент " "
. Выполнение .contents()
вернет один элемент, который является текстом " "
.
Весь этот код отлично работает, если я не включаю строку base64 в качестве источника для iframe ( data:application/pdf;base64,..
). Сам PDF отображается нормально и загружается правильно, но я не могу найти способ доступа к документу через JS / jQuery. Я не считаю, что это проблема со временем, так как в режиме отладчика, когда он останавливается в строке перед сбоем, я вижу, что содержимое загружено полностью (кроме того, .on('load', ..)
используется метод).
Соответствующий код (ASP .ЧИСТЫЙ MVC):
HTML:
lt;iframe class="converted-display" id="doc-iframe" src="@ViewBag.RAWData"gt; lt;/iframegt;
JS:
$(document).ready(function () { var url = window.location.href if (url.toLowerCase().includes("convert")) { $('#doc-iframe').on('load', function () { debugger $('#doc-iframe').contents().find('body').addClass('..') var element = $('#doc-iframe').contents().find('head').first()[0]; var style = document.createElement('style'); style.innerHTML = .. window.styleNode = style; element.parentNode.insertBefore(style, element); }) } })
ViewBag.RAWData
будет содержать строку ( data:application/pdf;base64,..
).
Результат $(‘#doc-iframe’) при остановке в отладчике, ясно показывающий, что документ загружен
Отображение результата .contents() и попытка его индексирования
Чтобы исключить проблемы с асинхронностью, я также попробовал команды в консоли после полной загрузки страницы и столкнулся с теми же проблемами.
У кого-нибудь есть какие-либо предложения или ресурсы? Я прочитал документ для .contents() и различные другие документы, также перепробовал множество вариантов JS, а также различные методы отображения PDF-файлов, например, object, embed, что заставляет меня задуматься, является ли основной проблемой предоставляемый src.
Большое вам спасибо за любую помощь.
Обновить:
Проблема с перекрестным происхождением, которой я не ожидал, поскольку данные, по сути, жестко закодированы в момент их загрузки-есть какие-либо предложения о том, как это исправить?