我的问题可能看起来很奇怪,因为我不确定如何措辞!!!问题是我用js写了一个函数
function onSavePNG(url){
var save = document.createElement('a');
console.log('url in save function'+url);
save.href = url;
console.log('save.href'+save.href);
save.target = '_blank';
save.download = 'Slide no '+(i+1)+'.png' || 'unknown';
var event = document.createEvent('Event');
event.initEvent('click', true, true);
save.dispatchEvent(event);
(window.URL || window.webkitURL).revokeObjectURL(save.href);
}
参数“url”是来自 Canvas 的 dataURL,该函数应该将图像保存到磁盘。 save.href 没有保存实际的 dataURL,它已更改为
'http://localhost:3000/data:image/png;base64.......'
我没有收到任何文件。 我该怎么做才能做到这一点
'http://localhost:3000/'
不成为分配给save.href的dataURL的一部分吗?
最佳答案
我通过删除出现在 dataURL 开头和结尾的单引号解决了我的问题
function onSavePNG(url){
var save = document.createElement('a');
console.log(url[0]+' '+url[url.length-1]);
url = url.slice(1);
url = url.substring(0,url.length-1);
console.log(url[0]+' '+url[url.length-1]);
save.href = url;
save.target = '_blank';
save.download = 'Image.png' || 'unknown';
var event = document.createEvent('Event');
event.initEvent('click', true, true);
save.dispatchEvent(event);
(window.URL || window.webkitURL).revokeObjectURL(save.href);
}
它现在工作:)
关于javascript - 如何阻止 dataURL 成为实际的 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19876101/