在新的Chrome版本中,我收到了此错误:
Window is not allowed to navigate Top-frame navigations to data URLs
图像看起来像(包含网址中的数据):
data:image/png;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4QBYRXhpZgAA...
我真的需要在新标签中打开它。 iFrame解决方案并不相关
答案 0 :(得分:2)
一个javascript解决方案:
var newTab = window.open();
newTab.document.body.innerHTML = '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==" width="100px" height="100px">';
你可以通过很多方式改变window.open()的行为方式,查看documentation。创建一些模仿Chrome在新标签中显示图片的方式的css / html也不难。出于安全原因,已删除加载data:
网址的功能,因此,如果您正在寻找一种方法,那么您就会失去运气。
答案 1 :(得分:0)
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);
您可以从api或其他资源返回base64字符串,并使其相同。希望对您有所帮助。