Невозможно вставить PDF-объект BLOB в HTML в IE - PullRequest
0 голосов
/ 19 февраля 2020

Я применил различные подходы для встраивания BLOB-объектов PDF в html в IE для его отображения.

1) создание URL объекта и передача его тегу embed или iframe. Это прекрасно работает в Chrome, но не в IE.

</head>
<body>
    <input type="file" onchange="previewFile()">
    <iframe id="test_iframe" style="width:100%;height:500px;"></iframe>
    <script>
        function previewFile() {
            var file = document.querySelector('input[type=file]').files[0];
            var downloadUrl = URL.createObjectURL(file);
            console.log(downloadUrl);
            var element = document.getElementById('test_iframe');
            element.setAttribute('src',downloadUrl);
        }
    </script>
</body>

2) Я также пытался обернуть объект URL Blob внутри encodeURIcomponent ()

Любые указатели на то, как я могу подойти, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 20 февраля 2020

IE не поддерживает iframe с URL-адресом данных в качестве атрибута sr c. Вы можете проверить это в caniuse . Это показывает, что поддержка ограничена изображениями и связанными ресурсами, такими как CSS или JS в IE. Также проверьте эту документацию :

URI данных поддерживаются только для следующих элементов и / или атрибутов.

  • объект (только изображения)
  • img
  • тип ввода = изображение
  • ссылка
  • CSS объявления, которые принимают URL, такие как background, backgroundImage и т. Д.

Кроме того, IE не имеет встроенного средства просмотра PDF, поэтому вы не можете отображать PDF-файлы напрямую в IE 11. Вы можете использовать только msSaveOrOpenBlob для обработки BLOB-объектов в IE, затем выберите открыть или сохранить файл PDF:

if(window.navigator.msSaveOrOpenBlob) {
    //IE11
    window.navigator.msSaveOrOpenBlob(blobData, fileName); 
}
else{
   //Other browsers
    window.URL.createObjectURL(blobData);
    ...
}
...