现在我有一个canvas
,我想把它保存为PNG。我可以用所有那些花哨复杂的文件系统API来做,但我真的不喜欢它们。
我知道是否有download
属性的链接:
<a href="img.png" download="output.png">Download</a>
如果用户点击它,它会下载文件。因此我想出了这个:
$("<a>")
.attr("href", "img.png")
.attr("download", "output.png")
.appendTo("body")
.click()
.remove();
演示:http://jsfiddle.net/DerekL/Wx7wn/
然而,它似乎不起作用。它必须由用户操作触发吗?或者为什么它不起作用?
2条答案
按热度按时间8zzbczxx1#
作为@Ian explained,问题是jQuery的
click()
与本机的click()
不同。因此,请考虑使用vanilla-js而不是jQuery:
Demo
omjgkv6w2#
问题是jQuery不会为
<a>
元素触发原生click
事件,因此导航不会发生(<a>
的正常行为),因此您需要手动执行此操作。对于几乎所有其他场景,都会触发原生DOM事件(至少尝试触发-它位于try/catch中)。要手动触发,请尝试:
演示:http://jsfiddle.net/HTggQ/
当前jQuery源中的相关行:https://github.com/jquery/jquery/blob/1.11.1/src/event.js#L332