尝试使用按钮将 html canvas 下载为图像时出现有趣的下载错误
Interesting download error when trying to download html canvas as image with button
当我第一次点击按钮时,它不起作用。在我第二次点击时,它会下载 1 张图片。我第三次点击它下载了 2 张图片。在我第 4 次单击时,它会下载 3 张图片。所以
1-0、2-1、3-2、4-3。它们也是立即下载的,它不问保存在哪里。
js:
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:
<button onclick="xyz()" id="download">Download</button>
刚开始学习javascript。我正在尝试通过检查应用程序来学习。我不明白为什么会这样,因此无法解决问题。
你现在基本上在做两件事。
因此,当有人单击按钮时,您将调用函数 xyz
。
在那里你附加了另一个点击监听器,所以第二次,xyz
和那个监听器都会触发。
你可以这样写你的xzy
:
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
时请注意,您不必进行绑定。
可选方法
但是,如果您更喜欢非内联脚本,也可以这样做
<button id="download">Download</button>
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;
});
希望对您有所帮助! ✌️
当我第一次点击按钮时,它不起作用。在我第二次点击时,它会下载 1 张图片。我第三次点击它下载了 2 张图片。在我第 4 次单击时,它会下载 3 张图片。所以 1-0、2-1、3-2、4-3。它们也是立即下载的,它不问保存在哪里。
js:
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:
<button onclick="xyz()" id="download">Download</button>
刚开始学习javascript。我正在尝试通过检查应用程序来学习。我不明白为什么会这样,因此无法解决问题。
你现在基本上在做两件事。
因此,当有人单击按钮时,您将调用函数 xyz
。
在那里你附加了另一个点击监听器,所以第二次,xyz
和那个监听器都会触发。
你可以这样写你的xzy
:
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
时请注意,您不必进行绑定。
可选方法
但是,如果您更喜欢非内联脚本,也可以这样做
<button id="download">Download</button>
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;
});
希望对您有所帮助! ✌️