javascript – d3.js下载图为svg图像
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – d3.js下载图为svg图像,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2150字,纯文字阅读大概需要4分钟。
内容图文
我一直在寻找从d3.js下载生成的svg的方法,我最终得到了phantom.js,这看起来有点矫枉过正(或者至少令人生畏,因为问题的“简单性”)或者svg-crowbar.js这显然只适用于chrome(我需要firefox).
我还发现了以下代码:
//Encode the SVG
var serializer = new XMLSerializer();
var xmlString = serializer.serializeToString(d3.select('svg').node());
var imgData = 'data:image/svg+xml;base64,' + btoa(xmlString);
//Use the download attribute (or a shim) to provide a link
<a href="'+imgData+'" download="download">Download</a>
在https://groups.google.com/forum/#!topic/d3-js/RnORDkLeS-Q
哪个应该下载svg(如果我可以让它工作).我在想,而不是提供下载按钮,单击某个svg-element也应该这样做?我目前有以下代码,但它不起作用:
var svg = d3.select(elementid).append("svg")
.attr("width", 500)
.attr("height", 500)
.append("g")
var serializer = new XMLSerializer();
var xmlString = serializer.serializeToString(d3.select('svg').node());
var imgData = 'data:image/svg+xml;base64,' + btoa(xmlString);
//Use the download attribute (or a shim) to provide a link
svg.append("rect")
.attr("x", 20)
.attr("y", 20)
.attr("width", 130)
.attr("height", 160)
.attr("fill", "red")
.attr("id", "rectLabel")
.attr('xlink:href',imgData);
svg只绘制矩形应允许您在按下矩形时将svg(带矩形)下载为.svg文件.我不知道我是否在正确的轨道上.
我是d3.js的新手,但基本上我正在为Firefox中的客户端d3.js svg下载寻找可能的修复/替代方案.我最好将下载“按钮”作为svg的一部分.
提前致谢!
解决方法:
好吧,我已经决定只允许指定按钮(带有downloadID)并在创建svg后在代码中添加了这个.
if (p.graph.svg.downloadID != undefined){
var serializer = new XMLSerializer();
var xmlString = serializer.serializeToString(d3.select('svg').node());
var imgData = 'data:image/svg+xml;base64,' + btoa(xmlString);
function writeDownloadLink(){
var html = d3.select(elementid).select("svg")
.attr("title", "svg_title")
.attr("version", 1.1)
.attr("xmlns", "http://www.w3.org/2000/svg")
.node().parentNode.innerHTML;
d3.select(this)
.attr("href-lang", "image/svg+xml")
.attr("href", "data:image/svg+xml;base64,\n" + btoa(unescape(encodeURIComponent(html))))
};
var idselector = "#"+p.graph.svg.downloadID;
d3.select(idselector)
.on("mouseover", writeDownloadLink);
}
不是我一开始的想法,但对我有用.
内容总结
以上是互联网集市为您收集整理的javascript – d3.js下载图为svg图像全部内容,希望文章能够帮你解决javascript – d3.js下载图为svg图像所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。