【发布时间】:2019-06-04 23:40:14
【问题描述】:
似乎 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;
}
}
【问题讨论】:
标签: javascript html angular cross-browser