首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当尝试将html canvas下载为带按钮的图像时出现有趣的下载错误

当尝试将html canvas下载为带按钮的图像时出现有趣的下载错误
EN

Stack Overflow用户
提问于 2020-11-18 00:01:53
回答 1查看 217关注 0票数 0

当我第一次点击这个按钮时,它不工作。在我的第二次点击它下载一张图片。我的第三次点击下载了2张图片。在我的第4次点击它下载了3张图片。所以1-0,2-1,3-2,4-3。它们也是立即下载的,它不会询问保存到哪里。

js:

代码语言:javascript
复制
  function xyz(){
  const text =canvas.api.getCanvasAsImage();
  const download = document.getElementById('download');
  download.addEventListener('click', function(e) {
  var link = document.createElement('a');
  link.download = 'download.png';
  link.href = text;
  link.click();
  link.delete;
});
}

html:

代码语言:javascript
复制
<button  onclick="xyz()" id="download">Download</button>

我刚刚开始学习javascript。我试着通过检查一个应用程序来学习。我不明白为什么会发生这样的事情,因此无法解决问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-18 02:37:47

你现在基本上是在做两件事。

因此,当有人单击按钮时,您将调用函数xyz。在这里,您附加了另一个单击侦听器,以便第二次,xyz和该侦听器都将触发。

你可以这样写你的xzy

代码语言:javascript
复制
function xyz(){
  const text = canvas.api.getCanvasAsImage();
  var link = document.createElement('a');
  link.download = 'download.png';
  link.href = text;
  link.click();
  link.delete;
}

这应该只会在每次点击时下载一次download.png文件。

至于位置,这不是默认行为,它只会下载到您的下载,这是因为我们强制下载图像。这不是用户可选的事情。

我希望这是有意义的,所以在使用onclick时请注意,您不必进行绑定。

可选方法

但是,如果您希望使用非内联脚本,也可以执行此操作

代码语言:javascript
复制
<button  id="download">Download</button>
代码语言:javascript
复制
const text = canvas.api.getCanvasAsImage();
const download = document.getElementById('download');
  
download.addEventListener('click', function(e) {
  var link = document.createElement('a');
  link.download = 'download.png';
  link.href = text;
  link.click();
  link.delete;
});

希望这对你有帮助!✌️

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64878821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档