数据 URI 在浏览器中具有长度限制(我不记得了),因此您可以采取的措施来克服此问题是将数据 URI 转换为这样的 blob-URL...
function DataUri2Blob(dataURI){
var B=atob(dataURI.split(',')[1]), L=B.length, A=[];
var Mime=dataURI.split(',')[0].split(':')[1].split(';')[0];
for(let i=0; i<L; i++){A.push(B.charCodeAt(i));}
return new Blob([new Uint8Array(A)],{type:Mime});}
使用...
var dataURI='data:image/png;base64,.....';
let Blob=DataUri2Blob(dataURI);
let Url=URL.createObjectURL(Blob);
然后在新窗口/选项卡中启动 Url 变量。
两秒后...
URL.revokeObjectURL(Url);