如何保存raphael生成的svg

And*_*rle 17 svg raphael

有没有办法将raphael生成的SVG保存为svg文件.请注意,它只需要在chrome中工作.

And*_*rle 14

我想出了一个使用Raphael.Export的解决方案,它给了我一个有效的svg/xml字符串(我无法从持有svg的DOM对象的innerHTML中得到的东西)和Blobbuilder来创建一个url for我将在最后触发点击事件以保存文件的链接.

svgString = @paper.toSVG();
a = document.createElement('a');
a.download = 'mySvg.svg';
a.type = 'image/svg+xml';
bb = new(window.BlobBuilder || WebKitBlobBuilder);
bb.append(svgString);
blob = bb.getBlob('image/svg+xml');
a.href = (window.URL || webkitURL).createObjectURL(blob);
a.click();
Run Code Online (Sandbox Code Playgroud)


Nee*_*ema 7

正如stef评论的那样,不推荐使用BlobBuilder API.相反,请使用Blob API.

基于安德烈亚斯的回答,以下是我如何迅速将其付诸实践:

svgString = r.toSVG();
a = document.createElement('a');
a.download = 'mySvg.svg';
a.type = 'image/svg+xml';
blob = new Blob([svgString], {"type": "image/svg+xml"});
a.href = (window.URL || webkitURL).createObjectURL(blob);
a.click();
Run Code Online (Sandbox Code Playgroud)