2017-08-16 383 views
0

我有一個鉻瀏覽器很奇怪的問題。我嘗試在新彈出窗口中打開文件(圖像和PDF)。爲了做到這一點,我使用這個功能Chrome瀏覽器無法打開文件

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

其中我從服務器獲取的類型和數據。

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

可能有人知道我該如何解決這個問題,還是這個鉻錯誤?

回答

0

使用這種

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'); 

,而不是解決問題。

0

原因可能是硬件加速的鉻。 請嘗試關注道格拉斯答案以禁用它,here

+0

我試試這個,沒反應。 –