我对chrome浏览器有一个非常奇怪的问题。我尝试在新弹出窗口中打开文件(图像和PDF)。为此,我使用此功能
window.open('data:' + type + ';base64,' + data, '_blank', 'height=300,width=400');
我从服务器获取的类型和数据。
因此,它在Opera,Mozilla和Edge中完美运行。 Popup in opera 但在Chrome中我得到一个空的弹出窗口。 Popup in chrome
可能有人知道我该怎么解决这个问题,还是这个铬虫?
答案 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。