Internet explorer 在IE9+上显示base64 pdf的解决方法;

Internet explorer 在IE9+上显示base64 pdf的解决方法;,internet-explorer,pdf,iframe,cross-browser,base64,Internet Explorer,Pdf,Iframe,Cross Browser,Base64,我想将PDF转换为base64并在浏览器上显示 问题是,以下代码适用于Firefox和Chrome <iframe src="data:application/pdf;base64,encodeString></iframe> 正如您所注意到的,Internet Explorer不支持使用数据URI作为iFrame的源。唯一的解决方法是从HTTP/HTTPS或FTP URI返回PDF内容,并将其用作IFRAME的源。注意:对于IE和其他浏览器(如Mozilla),Chr

我想将PDF转换为base64并在浏览器上显示

问题是,以下代码适用于Firefox和Chrome

<iframe src="data:application/pdf;base64,encodeString></iframe>

正如您所注意到的,Internet Explorer不支持使用数据URI作为iFrame的源。唯一的解决方法是从HTTP/HTTPS或FTP URI返回PDF内容,并将其用作IFRAME的源。

注意:对于IE和其他浏览器(如Mozilla),Chrome可以这样做 对我来说

if(数据==“”| |数据==未定义){
警报(“无法打开PDF”);
}否则{
//对于使用atob的IE,将base64编码数据转换为字节数组
if(window.navigator&&window.navigator.msSaveOrOpenBlob){
var byteCharacters=atob(数据);
var byteNumbers=新数组(byteCharacters.length);
for(变量i=0;i
我能想到的某种方法,将base64转换为其他数据格式?IE9+浏览器iframe是否支持任何格式?thanksLooks与and非常相似。谢谢提醒,我已经看了那篇文章,它似乎没有解决我的问题。谢谢提供更多信息,是否可以将base64代码转换为其他格式(pdf流?),ie9 iframe将支持该格式?可能重复我不理解您的问题。您在这样的IFRAME中引用PDF:
您能不能请elobarate?StackOverflow评论线程实际上不是新问题的地方。我不确定什么精化会有帮助:我提供的HTML片段准确地展示了如何创建指向PDF的IFRAME。谢谢@dinesh rajput,这个解决方案对我很有用。我仍然不明白为什么要在2017年执行此操作^^您如何将此代码应用于以下文件?
if (data == "" || data == undefined) {
    alert("Falied to open PDF.");
} else { 
    //For IE using atob convert base64 encoded data to byte array
    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
        var byteCharacters = atob(data);
        var byteNumbers = new Array(byteCharacters.length);
        for (var i = 0; i < byteCharacters.length; i++) {
            byteNumbers[i] = byteCharacters.charCodeAt(i);
        }
        var byteArray = new Uint8Array(byteNumbers);
        var blob = new Blob([byteArray], {
            type: 'application/pdf'
        });
        window.navigator.msSaveOrOpenBlob(blob, fileName);
    } else { 
        // Directly use base 64 encoded data for rest browsers (not IE)
        var base64EncodedPDF = data;
        var dataURI = "data:application/pdf;base64," + base64EncodedPDF1;
        window.open(dataURI, '_blank');
    }
}