2016-01-12 4 views
1

Я пытаюсь загрузить и показать содержимое удаленного файла внутри iFrame и преуспеть во всех браузерах, кроме IE (я пытаюсь с IE 10). Я использовал API XMLHttpRequest, Blob, CreateOBjectUrl для завершения процесса.Ошибка IE + XMLHttp + CreateObjectURL

В IE я не могу просмотреть содержимое файла внутри iFrame, а также никаких сообщений об ошибках, появившихся на консоли.

я вставил свой код в нижней части этого потока, и шаг за шагом объяснение, как показано ниже

  1. Получение загрузки URL документа & соответствующий MIME типа (прекрасно во всех broswers).
  2. Вызов XMLHttp просьба, HTTP GET Асинхронный вызов, как тип реакции, как «ArrayBuffer» (идеально штрафа во всех браузерах) После завершения XMLHttpGet ниже 3 шагов выполнения.
  3. Создание blob с использованием правильного типа mimetype (отлично отлично во всех других браузерах, специально проверяется blob, загружая его в IE с использованием метода MSSaveOrOpenBlob). 4.InOrder для связывания содержимого blob с iFrame, создайте URL-адрес blob с помощью «createObjectURL» (отлично отлично во всех браузерах, но в IE мы не получаем идеальный URL-адрес).
  4. И наконец, привязка URL-адреса с помощью iFrame для отображения.

Фрагмент кода ниже.

// Getting the document url and mime type (Which is perfectly fine) 

    var downloadUrl=finalServerURL + "DocumentService.svc/GetItemBinary?id=" + itemId + "&version=" + version; 

var mimeTypeForDownload = responseStore.mimeTypes[currentlySelectedObject.fileExtension]; 



    window.URL = window.URL || window.webkitURL; 

//Defining the XML Http Process 

       var xhr = new XMLHttpRequest(); 

       xhr.open('GET', downloadUrl, true); 

       xhr.responseType = 'arraybuffer'; //Reading as array buffer . 

       xhr.onload = function (e) { 

        var mimeType = mimeTypeForDownload; 

        var blob = new Blob([xhr.response], { type: mimeType }); 

        // Perfect blob, we are able to download it in both IE and non-IE browsers 



        //This below url from createObjectURL, 

        //Working perfectly fine in all non-IE browsers, but nothing happening in IE 

        var url = window.URL.createObjectURL(blob); 



       document.getElementById(documentContentiFrameId).setAttribute("src", url); 



       }; 

       xhr.send; 

Сообщите мне, если у вас есть информация по этому вопросу, было бы очень полезно.

ответ

1

Я узнал, что в IE нет возможности получить правильный URL-адрес для ваших записей blob, ни одна из моих попыток не преуспеет. Мои альтернативные решения, 1) перейти на pdf.js, библиотеку с открытым исходным кодом, которая позволяет извлекать бинарные файлы pdf и эквивалентные pdf-капли. 2) Напишите своих собственных зрителей, используя открытые библиотеки PDF, которые потребуют много времени и больше усилий для обучения.

Thanks, Vishnu

 Смежные вопросы

  • Нет связанных вопросов^_^