看来 IE 不允许直接打开 blob。您必须使用 msSaveOrOpenBlob。但有什么办法可以以某种方式将其转换吗?我确实需要将 PDF 显示到 IE 的新选项卡中而不下载它,或者至少用户不应该进行交互并且看不到它被下载到例如系统临时文件夹。 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;
}
}
你可以使用这个库:https://github.com/VadimDez/ng2-pdf-viewer https://github.com/VadimDez/ng2-pdf-viewer。
它是建立在pdfjs https://github.com/mozilla/pdf.js并可以将 pdf 集成到您自己的页面中。您可以创建一个将链接作为参数的路由,并在新选项卡中打开它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)