如何在IE的新标签页中显示PDF而不下载它

Joh*_*abb 5 html javascript cross-browser angular

似乎IE不允许直接打开Blob。您必须使用msSaveOrOpenBlob。但是有什么办法可以转换它。我确实需要在不下载IE的情况下将PDF显示到IE的新选项卡中,或者至少用户不应进行交互,也不要看到将其下载到例如system temp文件夹中。Safai在同一窗口而不是新选项卡中打开它,但是主要问题是IE。使所有浏览器工作类似的主要想法,并在新选项卡中将其打开以进行预览。

let blob = new Blob([response], {
    type: 'application/pdf'
});

if (window.navigator && window.navigator.msSaveOrOpenBlob) {//IE
    window.navigator.msSaveOrOpenBlob(response, "TheDocumentToShow.pdf");
} else {
    var fileURL = URL.createObjectURL(response);
    if (navigator.userAgent.indexOf("Chrome") != -1 || navigator.userAgent.indexOf("Firefox") != -1){
        let win = window.open(fileURL, '_blank');                        
    } else { //Safari & Opera iOS
        window.location.href = fileURL;
    }
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*hof 5

您可以使用以下库:https : //github.com/VadimDez/ng2-pdf-viewer。它基于pdfjs构建,可以将pdf集成到您自己的页面中。您可以创建一个将链接作为参数的路线,并在新选项卡中将其打开。

  • 试试这个角度包(https://www.npmjs.com/package/ng2-pdfjs-viewer)。设置`[externalWindow]="true"`。就是这样。例如。`<ng2-pdfjs-viewer [externalWindow]="true" pdfSrc="samplepdf.pdf"></ng2-pdfjs-viewer>` (2认同)