我在p5.js中写了一个小草图,通过使用saveCanvas()
方法保存画布的快照来完成。
当我打开控制台时,事情就像我预期的那样(我提供的名称文件保存到Downloads文件夹中)。但是,如果我关闭开发者控制台,我会看到"下载,失败 - 网络错误。"
此问题似乎只发生在Chrome中。我已经能够使用Safari和Firefox成功运行草图而没有打开控制台。
我已在代码中删除了对console
的任何引用(例如console.log()
)。
答案 0 :(得分:3)
这是锚点href
的chrome最大长度的已知限制。
通常workaround是请求Blob,然后创建blobURI而不是dataURI,或者将data-URI转换为Blob和blobURI。
但是由于你使用p5.js的方法,他们应该这样做,所以对于一个真正的修复,你必须在他们的跟踪器上post an issue。
要获得解决方法,您仍然可以自己访问canvas元素
var canvas = createCanvas(w, h);
var canvasElt = canvas.elt;
调用其toBlob()
方法,然后使用类似FileSaver.js的内容来获得相同的结果。