我正在尝试使用javascript将画布中的SVG保存为PNG文件。下面的代码在Chrome和Firefox上似乎可以正常工作,但是在IE 10中,我的控制台出现以下错误。
脚本5:访问被拒绝。
在我使用的代码下面找到:
var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
var a = $('<a>').attr("href", canvas.toDataURL("image/png")).attr("download", title + "png").appendTo($('#VisitsContainer'));
a[0].click();
a.remove();
控制台指向我尝试调用的click事件。
该download
属性未在Internet Explorer中实现。
对于Internet Explorer,可以使用“另存为”命令。
有关安全性的注意事项:
浏览器为2个主机服务。
浏览器必须满足用户的请求才能将内容保存到其本地驱动器。
浏览器还必须限制潜在的恶意代码,以免将位自动下载到用户本地驱动器上。
为了协调这两个任务,浏览器采用了这样的方法,即用户可以在某些确认过程后(例如“保存”按钮)将内容下载到本地驱动器。
使用a[0].click();
为用户确认有悖于浏览器的企图提供安全保障。
FileSave.js是一个跨浏览器库,它将您的画布保存到用户本地驱动器。通过要求用户单击一个按钮来确定下载,它符合安全性问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句