javascript - 如何阻止 dataURL 成为实际的 url?

标签 javascript html data-url

我的问题可能看起来很奇怪,因为我不确定如何措辞!!!问题是我用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/

相关文章:

javascript - 样式 react 安装的 react 组件

javascript - 为什么 jquery textcomplete 在第一次输入单词后无法正确找到其他单词?

javascript - 从 Canvas 复制到 Canvas 时图像模糊

javascript - 如何在 Canvas 中提取图像的一部分并将其用作 div 的背景图像?

javascript - 将计算出的 SVG 作为数据 URI 传递给 SRC 属性

javascript - <select> 标签中的列结构

javascript - 在javascript中获取div id值的百分比值

html - 屏幕最小化时标题照片(导航栏上方)消失

javascript - AngularJS:如何将对象映射到 HTML 属性

html - IE6下的一个文件中的图像没有php