Chrome浏览器无法打开文件

时间:2017-08-16 09:05:30

标签: javascript google-chrome typescript web

我对chrome浏览器有一个非常奇怪的问题。我尝试在新弹出窗口中打开文件(图像和PDF)。为此,我使用此功能

window.open('data:' + type + ';base64,' + data, '_blank', 'height=300,width=400');

我从服务器获取的类型和数据。

因此,它在Opera,Mozilla和Edge中完美运行。 Popup in opera 但在Chrome中我得到一个空的弹出窗口。 Popup in chrome

可能有人知道我该怎么解决这个问题,还是这个铬虫?

2 个答案:

答案 0 :(得分:2)

使用而不是

window.open('data:' + type + ';base64,' + data, '_blank', 'height=300,width=400');

此代码

let byteCharacters = atob(file);
let byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
     byteNumbers[i] = byteCharacters.charCodeAt(i);
}
let byteArray = new Uint8Array(byteNumbers);
let blob = new Blob([byteArray], {type: contentType});

const fileURL = URL.createObjectURL(blob);
window.open(fileURL, '_blank', 'height=300,width=400');

解决问题。

答案 1 :(得分:0)

原因可能是铬的硬件加速。 请尝试按照道格拉斯的回答来禁用它,here