我需要在 IE 浏览器中打开 pdf 文件。有什么办法可以做到这一点。这只适用于 chrome
var byteCharacters = atob(response.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 file = new Blob([byteArray], { type: 'application/pdf;base64' });
var fileURL = URL.createObjectURL(file);
window.open(fileURL);
答案 0 :(得分:1)
IE 不支持 URL.createObjectURL()
。 IE 有自己的用于创建和下载文件的 API,称为 msSaveBlob
或 msSaveOrOpenBlob
。 msSaveBlob
和 msSaveOrOpenBlob
方法之间的区别在于前者只向用户提供一个保存按钮,而后者同时提供一个保存和打开按钮。
此外,IE 没有嵌入 PDF 查看器,因此您无法在 IE 11 中直接显示 PDF。您只能在 IE 中使用 msSaveOrOpenBlob 处理 blob,然后选择打开或保存 PDF 文件:
if(window.navigator.msSaveOrOpenBlob) {
//IE11
window.navigator.msSaveOrOpenBlob(blobData, fileName);
}
else{
//Other browsers
window.URL.createObjectURL(blobData);
...
}